.exe.config에 쓸 응용 프로그램에 문제가 있습니다.ConfigurationManager Save()가 tmp 파일을 만들려고합니다.
코드 다음을 참조하십시오
using System;
using System.Configuration;
using System.IO;
namespace ConfigurationManagerError
{
class Program
{
static void Main(string[] args)
{
try
{
// set Config-File to persistent folder
ExeConfigurationFileMap exeMap = new ExeConfigurationFileMap();
exeMap.ExeConfigFilename = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"ConfigError\\ConfigurationManagerError.exe.config");
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(exeMap, ConfigurationUserLevel.None);
config.AppSettings.Settings.Add(
new KeyValueConfigurationElement("TestKey", "TestValue"));
config.Save(ConfigurationSaveMode.Modified);
Console.WriteLine("Successfully write of Configuration-File to " + config.FilePath);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.Read();
}
}
}
을만큼 내가 읽기 가진 사용자로 실행하고 폴더의 모든 작품에 쓰기 액세스를한다. 폴더에 쓰기 권한이없는 사용자가있는 경우 .exe.config를 쓸 수있는 권한이 허용되지 않는다는 예외가 있습니다. 지금까지 모든 것이 예상대로입니다.
하지만 지금 기존 파일을 읽고 쓸 수있는 권한이있는 사용자가있는 경우가 아닌 에 새 파일 예외가 그것의 ConfigurationManager가 원하는 것 같다
Access to the path 'C:\ProgramData\ConfigError\ila2ba_0.tmp' is denied
같은 것을 함께 표시됩니다를 만들 tmp 파일을 만듭니다. 어떻게 해결할 수 있습니까?
고맙습니다. 감사합니다. Joerg
사용자 별 설정이있는 경우 적합합니다. 필자의 경우 모든 사용자에게 영향을 줄 수있는 설정이 있습니다. 공통 폴더에 저장해야합니다. 그리고 (설명대로)이 폴더는 사용자가 파일을 변경할 수는 있지만 새 파일은 만들지 못하게합니다. – joerg