打开其他程序的配置文件

时间:2009-06-02 09:05:43

标签: c# .net app-config configurationmanager

我有一个程序 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)

1 个答案:

答案 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);