0

我有一个简单的 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 部分 = config.GetSection("appSettings");

section.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToApplication;

section.SectionInformation.UnprotectSection();
section.SectionInformation.ForceSave = true;
字符串值 = config.AppSettings.Settings["ValueHere"].Value;
字符串 otherValue = ConfigurationManager.AppSettings["ValueHere"].ToString();

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

如果我删除配置文件,应用程序将愉快地返回值,所以我 100% 确定它引用了其他文件,我只是无法弄清楚该文件在哪里或如何修复它。

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

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

4

1 回答 1

1

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

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

于 2013-04-24T19:10:29.620 回答