Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# App.Config解析失败_C#_.net_Wpf_App Config_Enterprise Library - Fatal编程技术网

C# App.Config解析失败

C# App.Config解析失败,c#,.net,wpf,app-config,enterprise-library,C#,.net,Wpf,App Config,Enterprise Library,我有一个C#WPF应用程序遇到了一个奇怪的问题。应用程序使用MS Enterprise Library(日志记录),该库是使用app.config配置的。因此,我部署的文件是: (名称已更改,文件名长度正确) xxxxxxxxxx.EXE xxxxxxxxxx.EXE.CONFIG 通常情况下,这一切都很好。然而,在一种奇怪的情况下,该应用程序是由另一个程序启动的,该程序根据EXE的短名称(XXXXXX~X.EXE)调用EXE。EXE将启动,但随后继续查找不存在的app.config(XXXXX

我有一个C#WPF应用程序遇到了一个奇怪的问题。应用程序使用MS Enterprise Library(日志记录),该库是使用app.config配置的。因此,我部署的文件是:

(名称已更改,文件名长度正确)

xxxxxxxxxx.EXE

xxxxxxxxxx.EXE.CONFIG

通常情况下,这一切都很好。然而,在一种奇怪的情况下,该应用程序是由另一个程序启动的,该程序根据EXE的短名称(XXXXXX~X.EXE)调用EXE。EXE将启动,但随后继续查找不存在的app.config(XXXXXX~X.EXE.config),并且日志记录类无法初始化

我无法更改启动我们的程序,因此我试图在我的WPF代码中找出防止这种情况发生的方法。思想是

< P> 1)重命名我的EXE并创建一个中间EXE的人。

2) 检测我的EXE是如何启动的,并正确地重新启动它

3) 某种类型的AppDomain/ConfigurationManager重新启动(可能吗?)

4) 使用安装程序将App.Config克隆到短文件名版本(已确认)


以前有没有人见过这一点,有什么建议/见解?

如果可以将exe更改为start,请调用

start.exe XXXXXXXXXX.exe

要修复一个糟糕的应用程序,你做不了多少。用短名称创建.config文件的副本并不可靠。简单的解决方案是使用8个字符或更少的文件名。我知道如何修复另一个蹩脚的应用程序,但我正在开发的应用程序是另一个蹩脚应用程序的重构,目前它需要适应其周围所有内容的原始基础架构。我们尝试了这一点,但似乎企业库已经在运行已加载,因此它将被忽略。(竞赛条件)。还有其他想法吗?
string realAppName = Process.GetCurrentProcess().MainModule.FileName;
System.AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", realAppName + ".config");