如何在不丢失程序集信息的情况下嵌入检测清单

  • 本文关键字:情况下 信息 程序集 .net etw
  • 更新时间 :
  • 英文 :


我的目标是在 .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++方式相比,这要好得多。

相关内容

最新更新