我的目标是在 .NET 程序集中嵌入检测清单。为此,我使用 mc.exe将清单文件 (.man) 编译为资源文件 (.rc),然后使用 rc.exe 将 .rc 文件编译为 .res 文件。最后,我使用 .csproj 文件中的 Win32Resource 元素将 .res 文件嵌入到程序集中。
问题是,一旦我使用了 Win32Resource 元素,我就会丢失由 AssemblyInfo.cs 文件生成的版本控制信息。
如何嵌入检测清单并将版本控制信息保留在生成的程序集中?
请使用 Microsoft.Diagnostics.Tracing.EventSource NuGet 包在 .Net 中使用 ETW。
下面是一个示例类:
[EventSource(Name = "Samples-EventSourceDemos-EventLog")]
public sealed class MinimalEventSource : EventSource
{
public static MinimalEventSource Log = new MinimalEventSource();
[Event(1, Message="{0} -> {1}", Channel = EventChannel.Admin)]
public void Load(long baseAddress, string imageName)
{
WriteEvent(1, baseAddress, imageName);
}
}
与旧的C++方式相比,这要好得多。