我有一个C#WPF应用程序遇到了一个奇怪的问题。该应用程序使用使用app.config配置的MS Enterprise Library(Logging)。我部署的文件因此是:
(名称已更改,文件名长度正确)
XXXXXXXXXXX.EXE
XXXXXXXXXXX.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克隆为短文件名版本(已确认可用)
有没有人见过这个,有任何建议/见解?
答案 0 :(得分:1)
string realAppName = Process.GetCurrentProcess().MainModule.FileName;
System.AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", realAppName + ".config");
答案 1 :(得分:0)
如果您可以将exe更改为start,则调用
start.exe XXXXXXXXXX.exe