我想从安装程序或不属于应用程序一部分的测试中编辑
user.config
文件,并使用我想要编辑的配置。因此我需要一条user.config
的路径。
user.config 的路径是这样的:c:\Users\SomeUser\AppData\Local\SomeApp\SomeAppName.exe_StrongName_2ndz3ofoffkd0gg0sv1qxyrthr3yi236\2.4.2.0\
.
使用
ConfigurationManager.OpenExeConfiguration(...)
我只从安装文件夹中获取 *.exe.config
路径,而不是 AppData。
第二个选项是折叠路径。除了正确的 StrongName 哈希值
2ndz3ofoffkd0gg0sv1qxyrthr3yi236
与程序集中的 StrongName (PublicKeyToken) 不匹配之外,我可以获得所有内容。
你能建议我以编程方式更改
user.config
吗?
以下方法可能对您有帮助:
public void AddUpdateAppSettings(string key, string value)
{
try
{
System.Configuration.ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + "..\\..\\user.config";
Configuration configFile = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
var settings = configFile.AppSettings.Settings;
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
}
catch (Exception e)
{
Console.WriteLine("Error writing user settings");
}
}