我有一个程序 A ,它还有一个app.config文件,我在其中添加了一些密钥,如服务器地址,用户名和密码,用于连接服务器。它是一个控制台应用程序。现在我想制作一个我已经完成的UI。在该UI中,我想修改程序 A 的app.config内容。我怎么做?
以下是我尝试的内容,我将UI(基本上是.exe)复制到程序 A的目录中,app.config也位于该目录中。然后在UI中,我使用 ConfigurationManager 类的 OpenExeConfiguration 方法,并将程序 A的文件名作为参数传递。但它会抛出 System.Configuration.ConfigurationErrorsException 类型的异常。
所以我认为我的方法不正确。我该怎么做?
编辑:哦,我忘了告诉我正在使用C#,.NET 3.5和VS 2008(如果有帮助:D)
答案 0 :(得分:14)
我不确定您的方法存在问题(尝试将堆栈跟踪添加到您的帖子中),但这就是我的方法:
var configMap =
new ExeConfigurationFileMap
{
ExeConfigFilename = externalConfigurationFile
};
System.Configuration.Configuration externalConfiguration =
ConfigurationManager.OpenMappedExeConfiguration(
configMap,
ConfigurationUserLevel.None);
foreach (var setting in externalConfiguration.AppSettings.Settings)
{
...
}
externalConfiguration.Save(ConfigurationSaveMode.Full);