【发布时间】:2012-10-23 02:33:16
【问题描述】:
我有一个遇到奇怪问题的 C# WPF 应用程序。该应用程序使用使用 app.config 配置的 MS 企业库(日志记录)。因此,我部署的文件是:
(名称已更改,文件名长度正确)
XXXXXXXXXXXX.EXE
XXXXXXXXXXXX.EXE.CONFIG
通常这工作得很好。然而,在一个奇怪的情况下,该应用程序是由另一个程序启动的,该程序根据它的短名称 (XXXXXX~X.EXE) 调用 EXE。 EXE 启动,然后继续查找不存在的 app.config (XXXXXX~X.EXE.CONFIG ),并且 Logging 类无法初始化。
我无法更改启动我们的程序,因此我试图在我的 WPF 代码中找出防止这种情况的方法。想法是……
1) 重命名我的EXE并在EXE中间创建一个人。
2) 检测我的 EXE 是如何启动并正确重新启动的。
3) 某种 AppDomain / ConfigurationManager 重新指向(这可能吗?)
4) 使用安装程序将 App.Config 克隆为短文件名版本(已确认有效)
有没有人以前见过这个并且有任何建议/见解?
【问题讨论】:
-
修复一个蹩脚的应用程序你无能为力。使用短名称创建 .config 文件的副本并不是非常可靠。简单的解决方案是使用 8 个字符或更少字符的文件名。
-
我了解修复另一个糟糕的应用程序,但我正在开发的应用程序是对另一个糟糕的应用程序的重构,它目前需要适应它周围所有事物的原始基础架构。
标签: c# .net wpf app-config enterprise-library