10

我有一个程序A,它还有一个 app.config 文件,我在其中添加了一些密钥,例如服务器地址、用户名和密码以连接到服务器。它是一个控制台应用程序。现在我想制作一个我已经完成的用户界面。在那个 UI 中,我想修改程序A的 app.config 的内容。我怎么做?

这是我尝试过的,我将 UI(基本上是一个 .exe)复制到程序A 的目录中,app.config 也位于该目录中。然后在 UI 中,我使用ConfigurationManager类的OpenExeConfiguration方法,并将程序A 的文件名作为参数传递。但它会抛出System.Configuration.ConfigurationErrorsException类型的异常。

所以我认为我的方法是不正确的。我该怎么做?

编辑:哦,我忘了告诉我正在使用 C#、.NET 3.5 和 VS 2008(如果有帮助的话:D)

4

1 回答 1

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);
于 2009-06-02T09:11:41.893 回答