0

奇妙な問題が発生している C# WPF アプリケーションがあります。アプリは、app.config を使用して構成された MS Enterprise Library (Logging) を使用します。したがって、デプロイされたファイルは次のとおりです。

(名前が変更され、ファイル名の長さが正しい)

XXXXXXXXXXXX.EXE

XXXXXXXXXXXX.EXE.CONFIG

通常、これは問題なく動作します。ただし、ある奇妙な状況では、アプリは、短い名前 (XXXXXX~X.EXE) に基づいて EXE を呼び出す別のプログラムによって起動されます。EXE は起動しますが、存在しない app.config (XXXXXX~X.EXE.CONFIG) の検索に進み、Logging クラスの初期化に失敗します。

起動するプログラムを変更できないため、WPF コードでこれを防ぐ方法を見つけようとしています。想いは…

1) 私の EXE の名前を変更し、真ん中の EXE に man を作成します。

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 に答える