1

wixを使用してアプリケーションイベントログを作成するための推奨される方法は、

 <Util:EventSource
          Name="BLAH"
          Log="Application"
          EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR]EventLogMessages.dll"/>

64ビットOSでは、NETFRAMEWORK40FULLINSTALLROOTDIRをNETFRAMEWORK40FULLINSTALLROOTDIR64に置き換えます。

64ビットOSで32ビットアプリを実行すると、コードから.NET EventLog.CreateEventSourceメソッドを使用すると、NETFRAMEWORK40FULLINSTALLROOTDIRを使用してイベントログが作成されることに気付きました。

EventMessageFile => C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll

イベントログなしで64ビットバージョンのアプリを実行すると、アプリが作成されます。

EventMessageFile => C:\Windows\Microsoft.NET\Framework64\v4.0.30319\EventLogMessages.dll

EventMessageFileのパスにFrameworkまたはFramework64があるかどうかに関係なく、アプリの32ビットバージョンと64ビットバージョンの両方で、作成後に陽気に書き込むことができます。

これはサポートされている動作ですか?アプリの32ビットバージョンと64ビットバージョンの両方を並べて許可する場合、それを作成する正しい方法は何ですか?

4

1 に答える 1

0

Windows イベント ログを使用すると、ローカライズされたイベント ログ メッセージ ファイルを作成できます。Microsoft が Windows の一部であるサービスを作成している場合、おそらく、イベント ログに書き込まれる内容をローカライズできるようにしたいと考えています。ただし、他のほとんどの人は、選択した言語で文字列をイベント ログに書き込めるようにしたいと考えており、それはまさに .NET イベント ログ ラッパーが提供するものです。したがって、.NET は、ローカライズされたメッセージを含まず、提供された文字列引数が挿入される単一の引数プレースホルダーを持つメッセージのみを含む非常に一般的なイベント ログ メッセージ ファイルを提供し、.NET アプリケーションがイベント ログに書き込む内容を完全に制御できるようにします。

.NET ( ) 内の 32 ビットと 64 ビットのデフォルト イベント ログ メッセージ ファイルに異なるメッセージが含まれていたら驚かれることでしょうがEventLogMessages.dll、この知識があったとしても、32 ビット サービスを 32 ビット DLL に、64 ビット サービスを 64 に向ける必要があります。ビットDLL。そして、私があなたの質問を正しく理解していれば、それはまさにあなたが見ている行動です.

.NET イベント ログ メッセージ ファイルに関して、実際の「サイド バイ サイド」の問題はありません。ただし、何らかの理由で独自の (おそらくローカライズされた) イベント ログ メッセージ ファイルを作成することにした場合は、このファイルの 2 つのコピーを 2 つのサービスでインストールするか、コピーを共有して にインストールすることができます%CommonProgramFiles%。ただし、2 つのコピーを並べてインストールしないと、一方のバージョンが他方とは無関係に更新された場合に、将来的に問題が発生する可能性があります。

于 2013-01-29T16:13:41.890 に答える