2014-06-18 5 views
1

new .NET EventSource API from nuget을 사용 중입니다. 내 응용 프로그램을 빌드하고 wevtutil.exe을 사용하여 매니페스트 및 리소스 DLL을 설치했습니다.사용자 지정 로그 이벤트의 이벤트 로그에 문자열이 표시되지 않는 이유는 무엇입니까?

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이 작동하지 않습니까?

답변

1

유레카! 나는 매니 페스트를 잘못 설치했는데, wevtutil에 대한 두 스위치 중 하나는 매니페스트 파일 이름을 반복하고 다른 하나는 DLL 파일 이름을 포함한다고 생각했습니다. 사실, 둘 다 DLL을 참조해야합니다.

<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> 
:

지금이 마크 업을 사용 WiX이하고 있어요