关于c#:错误的app.config加载

Wrong app.config loading

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

以下是我正在做的,添加了一些额外的垃圾,并在我使用"试错法"到目前为止更改了名称:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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的名称是applicationu name.exe.config。

如果我删除配置文件,应用程序会很高兴地返回值,因此我100%确定它引用了其他文件,我只是无法确定该文件在哪里,以及如何修复它。

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

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


如果设置具有用户作用域,它将写入用户(漫游)配置文件中的配置文件。请参见:在.NET中使用settings.settings文件时,配置实际存储在哪里?

因此,请检查设置属性的范围。