ConfigurationManager.OpenMappedExeConfiguration有问题的行为

时间:2014-10-27 09:24:36

标签: c# wpf config

我的WPF应用程序有一个非常奇怪的问题。我正在尝试使用此方法打开常规配置文件:

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = ConfigurationManager.AppSettings[ PATH_TO_CONFIG ]; //which returns a valid path 
s_config = ConfigurationManager.OpenMappedExeConfiguration( fileMap, ConfigurationUserLevel.None );  

首次运行应用程序时,此工作正常 - 它在app .exe所在的目录中找到配置文件。 - D:\ MyApp \ bin \ Debug \ MyConfigFile.conf但是当您通过右键单击工具栏中正在运行的应用程序图标打开另一个应用程序实例时,从上下文菜单中选择打开新实例然后我得到一个奇怪的行为: s_config.FilePath现在找不到我的配置文件,因为它指向“C:\ Windows \ systems32 \ myConfigFile.exe.config”并且此问题仅在第二个应用程序像这样启动时重现。

有人知道可能出现什么问题吗?

1 个答案:

答案 0 :(得分:0)

我们没有找到问题的解决方案,所以我们解决了这个问题。如果找不到配置文件,我们使用     System.Reflection.Assembly.GetExecutingAssembly()位置
获取配置文件的完整路径并传递给fileMap.ExeConfigFilename