错误的app.config加载

时间:2013-04-24 13:10:53

标签: c# .net console-application app-config

我有一个简单的C#控制台应用程序需要从app.config文件中提取一些值。问题是它似乎打开了一个我无法找到的单独的,隐藏的配置文件,或者弄清楚如何修复。

以下是我正在做的事情,添加了一些额外的废话并更改了名称,因为到目前为止我一直在使用试验和错误:

var configPath = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

var fileMap = new ExeConfigurationFileMap();

fileMap.RoamingUserConfigFilename = configPath;
fileMap.ExeConfigFilename = configPath;
fileMap.LocalUserConfigFilename = configPath;

var config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

ConfigurationSection section = config.GetSection("appSettings");

section.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToApplication;

section.SectionInformation.UnprotectSection();
section.SectionInformation.ForceSave = true;
string value = config.AppSettings.Settings["ValueHere"].Value;
string otherValue = ConfigurationManager.AppSettings["ValueHere"].ToString();

configPath指向包含app.config的文件所在的正确路径。 app.config的名称是APPLICATION_NAME.exe.config。

如果我删除配置文件,应用程序将很乐意返回值,所以我100%确定它引用了一些其他文件,我无法弄清楚该文件的位置或如何修复它。

在调试中运行应用程序指向正确的路径但当然位于bin中 - >调试文件夹,用处不大。只有在安装测试和生产中才会出现此问题。

编辑:文件夹内容中只有一个app.config文件。该应用程序正在其他地方搜索并找到另一个。

1 个答案:

答案 0 :(得分:1)

如果设置具有用户范围,则会将其写入用户(漫游)配置文件中的配置文件。请参阅:When using a Settings.settings file in .NET, where is the config actually stored?

请检查设置属性的范围。