1

nugetの新しい .NETEventSource APIを使用しています。アプリケーションをビルドし、.NET を使用してマニフェストとリソース DLL をインストールしましたwevtutil.exe。イベント ログ エントリをイベント ビューアで表示すると、次のテキストが含まれます。

The description for Event ID 1 from source XXXX cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 


the message resource is present but the message is not found in the string/message table

メッセージの最後の部分は特に注目に値するようです。「メッセージ リソースは存在しますが、文字列/メッセージ テーブルにメッセージが見つかりません。」

リソース DLL が機能しないのはなぜですか?

4

1 に答える 1

1

ユーレカ!wevtutilの 2 つのスイッチのうち、1 つはマニフェスト ファイル名を繰り返し、もう 1 つは DLL ファイル名を含んでいると考えて、マニフェストを間違ってインストールしました。実際には、どちらも DLL を参照する必要があります。

私は今、このマークアップを使用してWiXでこれを行っています:

<Component Id="etwManifest.man" Guid="*">
  <File Id="File.etwManifest.man" 
        Source="$(var.Project.TargetDir)EventSource.Provider-Name.etwManifest.man"
        KeyPath="yes" Vital="yes">
    <util:EventManifest MessageFile="[#File.etwManifest.dll]" 
                          ResourceFile="[#File.etwManifest.dll]" />
  </File>
</Component>
于 2014-06-18T20:03:04.263 に答える