C# App.Config解析失败
我有一个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克隆到短文件名版本(已确认)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
以前有没有人见过这一点,有什么建议/见解?如果可以将exe更改为start,请调用
start.exe XXXXXXXXXX.exe
要修复一个糟糕的应用程序,你做不了多少。用短名称创建.config文件的副本并不可靠。简单的解决方案是使用8个字符或更少的文件名。我知道如何修复另一个蹩脚的应用程序,但我正在开发的应用程序是另一个蹩脚应用程序的重构,目前它需要适应其周围所有内容的原始基础架构。我们尝试了这一点,但似乎企业库已经在运行已加载,因此它将被忽略。(竞赛条件)。还有其他想法吗?
string realAppName = Process.GetCurrentProcess().MainModule.FileName;
System.AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", realAppName + ".config");