I\'ve been trying to work with ETW in .net 4.0.
I have started using Microsoft EventSource Library 1.0.4-beta (https://www.nuget.org/packages/Microsoft.Diagnostics.Trac
You don't need to get the Manifest any longer. You can now directly register the EventSource:
Registering your EventSource
When you install the EventSource NuGet package, the build step previously mentioned generates the following files for each EventSource in your application:
AssemblyName.EventSourceTypeName.etwManifest.man
AssemblyName.EventSourceTypeName.etwManifest.dll.
These files need to be registered with the operating system to enable channel support. To do this you run the following command after the files are in their final deployed location:
wevtutil.exe im EtwManifestManFile /rf:"EtwManifestDllFile"c /mf:"EtwManifestDllFile"
Microsoft explained this in this Blog:
Announcing the EventSource NuGet Package – Write to the Windows Event Log
The answer by @magicandre1981 is correct in the sense that it's not necessary to generate manifests with newer versions of .NET
and EventSource
. (In fact, it's still taking place, but it's just been hidden behind a build event that gets put into your project file when you're installing the EventSource package.)
However, depending on what you're doing, you might still need to generate the manifest manually. Here's one way to do it:
Install-Package Microsoft.Diagnostics.Tracing.EventSource
) into your project or download and unpack it where you need iteventRegister.exe
. (It will most likely be somewhere under folder similar to packages\Microsoft.Diagnostics.Tracing.EventRegister.1.1.26\build
relative to the package installation folder)eventRegister.exe {path-to-dll-with-your-eventsource-class} {manifest-output-file-prefix}
After that you'll see two files per each EventSource class that you have in the dll:
And those are the ones you can then feed to wevtutil:
wevtutil.exe
im {EtwManifestManFile}
/rf:"{EtwManifestDllFile}"
/mf:"{EtwManifestDllFile}"
I was able find a solution for this. Now i am able to register and publish the events to the eventviewer.
http://naveensrinivasan.com/2010/03/17/using-clr-4-0-event-tracing-for-windows-etw-along-with-application-etw/
Thanks.