0

我有一个遇到奇怪问题的 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克隆为短文件名版本(确认有效)

有没有人以前见过这个并且有任何建议/见解?

4

2 回答 2

1
string realAppName = Process.GetCurrentProcess().MainModule.FileName;
System.AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", realAppName + ".config");
于 2012-11-02T15:07:57.977 回答
0

如果您可以更改 exe 以启动然后调用

start.exe XXXXXXXXXX.exe
于 2012-11-02T13:30:45.873 回答