状态的文档ConfigurationManager.OpenExeConfiguration(string exePath)
:
打开指定的客户端配置文件作为配置对象。
它还指出这exePath
是“可执行(exe)文件的路径”
该方法应该*.exe.config
在 指定的路径打开可执行文件的文件,exePath
如果ConfigurationErrorsException
“无法加载配置文件。”将抛出 a。
以下代码使用非可执行文件的路径,并且该路径的目录不包含 *.exe.config 文件。然而,代码执行时没有任何异常,也没有任何其他无效参数的迹象。
var configs = Directory.GetFiles("C:\\NoConfig", "*.config");
Debug.Assert(configs.Length == 0);
File.WriteAllText("C:\\NoConfig\\notes.txt", "This is not an executable, and there is no .config file in its folder.");
var config = ConfigurationManager.OpenExeConfiguration("c:\\notes.txt");
Debug.Assert(config != null);
然而,对于新的基于 .NET Core JSON 的配置,它现在将慢慢被弃用,并且无论如何都不会被审查或修复。
那么,这是由于OpenExeConfiguration
方法重载中的错误造成的吗?
在我在 MS Connect 上提出之前,我只是想要一个第二和第n个意见。目前,Connect 已关闭。
添加:如果我使用有效的 , 调用OpenExeConfiguration
具有有效exePath
文件的真实可执行文件(已测试),.config
则它会读取但不解析文件。我必须请求该部分的 xml并自己解析它,使用来自自定义文件的 AppSettingsappSettings
这个答案的解决方法。这增加了我的怀疑,即此代码在此模式下不常用,已被接受为有效且未经过审查,因此可能存在错误。
我敢肯定,新的 .NET Core 配置 API 只会取代旧的 XML,它不会受到关注。