EventSource .net 4.0 生成清单

2023-12-10

我一直在尝试在 .net 4.0 中使用 ETW。

我已经开始使用 Microsoft EventSource Library 1.0.4-beta (https://www.nuget.org/packages/Microsoft.Diagnostics.Tracing.EventSource)

这是我为我的应用程序生成事件而编写的代码。

[EventSource(Name = "Samples-EventSourceDemos-EventSourceLogger")]
public sealed class EventSourceLogger : EventSource
{
    public static EventSourceLogger Log = new EventSourceLogger();

    public static string GetManifest()
    {
        return GenerateManifest(typeof(EventSourceLogger), null);
    }

    [Event(200, Level = Microsoft.Diagnostics.Tracing.EventLevel.Informational, Task = EventTask.None, Version = 1,
        Opcode = EventOpcode.Info, Keywords = EventKeywords.None, Channel = EventChannel.Admin,
        Message = "Test Message")]
    public void LogEtwInfoEventMessage(string jsonArgs)
    {
        if (!this.IsEnabled()) return;

        this.WriteEvent(200, jsonArgs);
    }

    [Event(400, Level = Microsoft.Diagnostics.Tracing.EventLevel.Error, Task = EventTask.None, Version = 1,
        Opcode = EventOpcode.Info, Keywords = EventKeywords.None, Channel = EventChannel.Admin, Message = "Test Message")]
    public void LogEtwErrorEventMessage(string jsonArgs)
    {
        if (!this.IsEnabled()) return;

        this.WriteEvent(400, jsonArgs);
    }

    [Event(500, Level = Microsoft.Diagnostics.Tracing.EventLevel.Warning, Task = EventTask.None, Version = 1,
       Opcode = EventOpcode.Info, Keywords = EventKeywords.None, Channel = EventChannel.Admin, Message = "Test Message")]
    public void LogEtwWarningEventMessage(string jsonArgs)
    {
        if (!this.IsEnabled()) return;

        this.WriteEvent(500, jsonArgs);
    }
}

我无法从侦听器生成清单。下面的代码

var manifestXml = EventSourceLogger.GetManifest();

当我尝试调用此方法时,我得到 NullReferenceException,请建议我遗漏了任何内容。是否可以使用此版本将 EventMessage 推送到 EventViewer。

作为此 NuGet 包的一部分,我有 eventRegister、Install Bat、Microsoft.Diagnostics.Tracing.EventSource.targets。我不太确定这些将如何帮助清单生成。

如果有人对此有任何想法(或),请提供帮助。

提前致谢。


@magicandre1981 的答案是正确的,因为它是不必要使用较新版本生成清单.NET and EventSource。 (事实上​​,它仍在发生,但它只是隐藏在构建事件后面,当您安装事件源包.)

但是,根据您正在执行的操作,您可能仍然需要手动生成清单。这是一种方法:

  1. 要么安装事件源包 (Install-Package Microsoft.Diagnostics.Tracing.EventSource)到您的项目中或在您需要的地方下载并解压它
  2. 找到eventRegister.exe。 (它很可能位于类似于以下文件夹下的某个位置packages\Microsoft.Diagnostics.Tracing.EventRegister.1.1.26\build相对于包安装文件夹)
  3. 运行以下命令:

eventRegister.exe {path-to-dll-with-your-eventsource-class} {manifest-output-file-prefix}

之后,您将看到 dll 中的每个 EventSource 类都有两个文件:

  • {前缀}{事件源名称}.etwManifest.dll
  • {前缀}{事件源名称}.etwManifest.man

然后你就可以喂这些wevtutil:

wevtutil.exe 
   im {EtwManifestManFile} 
   /rf:"{EtwManifestDllFile}" 
   /mf:"{EtwManifestDllFile}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EventSource .net 4.0 生成清单 的相关文章

随机推荐

  • 保存领域关系并不会使它们持久化

    我有一个清单articles 这些文章是通过使用插入的realm copyToRealmOrUpdate 效果非常好 现在每篇文章都有一个不应该被持久化的authorId 相反 我想找到存储的作者 RealmObject并设置其与文章的关系
  • Android ViewPager 中心项目更大

    我想创建一个 ViewPager 选定的中心项目比其他项目大 上一个和下一个项目的部分始终可见 我在用viewPager setPageMargin 20 使上一个和下一个项目的一部分可见 但是 如何使选定的中心项目比其他项目稍大一些 您可
  • 有没有我可以使用的 Subversion Web 客户端

    我想在 Linux 首选 或 Windows 上安装 svn Web 客户端 我只需要只读功能 不需要提交 并且我希望能够使用 diff 来比较修订版本 我的 svn 服务器在另一台机器上 因此 Web 服务器需要通过 http 访问它 也
  • 链接到更高级别文件夹中的文件

    我在提供比我的根文件夹级别更高的文档时遇到问题 a href home folder document docx Proposal a 在浏览器中 上面的内容被解释为 http localhost home folder document
  • 连接文件夹中的大量文件时参数列表太长

    这是一个将多个相同模式文件连接成一个大文件的命令 在文件夹中我有 77k 个文件 我得到Argument list too long 示例文件名是每分钟 cartreset 2014 05 08 01 12 log rm f tmp tem
  • Chrome 开发工具 - “大小”与“内容”

    在 Chrome 开发工具的 网络 选项卡中查看有关样式表的信息时 一列指定 大小 和 内容 有人能解释一下这两个数字之间的区别吗 在某些页面上 数字很接近 而在其他页面上 数字则相差相当大 大小 是线路上的字节数 内容 是资源的实际大小
  • ARKit – 如何显示来自放置在 SCNPlane 上的虚拟 SCNCamera 的源?

    我使用 ARKit 和 SceneKit 将一些对象放入 AR 空间中 效果很好 现在我想添加一个额外的摄像机 SCNCamera 该摄像机放置在场景中的其他位置 由公共 SCNNode 连接和定位 它旨在从另一个 固定 角度向我展示当前场
  • 在签入 TFS 之前是否必须执行“获取最新版本”,以免覆盖/丢失代码?

    我的团队中有一个反复出现的问题让我抓狂 人们声称 Team Foundation Server 中的某些签入会覆盖以前的签入 现有代码 他们声称你总是需要做Get Latest Version在办理登机手续之前 换句话说 运行获取最新信息是
  • 嵌入式Kafka:KTable+KTable leftJoin产生重复记录

    我来寻求神秘的知识 首先 我有两对主题 每对中的一个主题融入另一个主题 后面的主题形成两个KTable 用于KTable KTable leftJoin 问题是 当我向任一 KTable 生成一条记录时 leftJoin 会生成三个记录 我
  • 通过javascript获取网页文本[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 是否有 JavaScript 语句可以从网页中检索内容 文本 你可以这样做Ranges
  • 可以在 SharedPreferences 中保存 JSON 数组吗?

    我有一个需要保存的 JSON 数组 我正在考虑序列化它 但是将它保存为 SharedPreferences 中的字符串 然后在我需要读入它时重建它会更好吗 Java 中的 JSON 对象并未实现开箱即用的可序列化 我见过其他人扩展了该类以允
  • 为什么边框会导致 div 溢出容器?

    我有一个部分设置为固定宽度 其内部有一个 100 宽度的 div 边框为 5 像素 看起来不错 但您可以看出包含的 div 有点偏离中心 而且它不会没有边框 我需要将其与客户端组件相匹配 代码相当简单 info max width 980p
  • 我可以在Xcode模拟器中测试加速度计效果吗?

    我正在开发一个管理图像视图的 alpha 属性的应用程序 当用户移动手机时 Alpha 属性可以增加 减少 我在这里看到了一些关于使用 UIAccelerometer 子类的内容 谁能帮我做到这一点 以便我可以在模拟器上测试它 谢谢 您不能
  • 将视图添加到操作表中

    我可以将自定义 UIViewController 添加到 ActionSheet 中吗 thanks 终于我找到了它 我在 UIActionSheet 中添加了一个 UIViewController 子类的视图 我在单独的文件中创建了一个视
  • 如何解决“以下软件包具有未满足的依赖关系”

    我正在使用这个脚本来安装基本软件 但由于网速缓慢而不得不中断 现在当我击中 sudo apt get install npm 我收到以下错误 yask123 yaskslaptop sudo apt get installed npm E
  • GCC,比较使用 -O2 和使用它打开的所有优化标志的效果

    From gcc5 4文档 它说 O2 打开 O 指定的所有优化标志 它还打开以下优化标志 f线程跳转 falign 函数 falign 跳跃 falign 循环 falign 标签 fcaller 保存 f越野跳跃 fcse follow
  • Linq to sql,在 datagridview 中过滤结果

    我有一个非常简单的数据库 我正在使用 linq to sql 我有一个 datagridview 来显示表的内容 我希望用户能够过滤出现在 datagridview 中的行 如果可能的话 无需对数据库进行另一个查询 我的资源确实很少 因此解
  • UICollectionViewCell 内带有 UITableView 的自定义单元格

    我有一个用于 UICollectionView 的自定义 UICollectionViewCell 我已将此自定义类标记为 UITableViewDataSource 和 UITableViewDelegate 以便将 UITableVie
  • 需要用 C 语言构建简单的 DNS 解析器 [重复]

    这个问题在这里已经有答案了 可能的重复 如何用 C C 构建自定义简单 DNS 服务器 正如标题所说 我需要用 C 语言构建一个简单的 dns 解析器 不是 C 我在互联网上查找了一些教程来帮助我入门 但大多数都找到了 C 想知道是否有人知
  • EventSource .net 4.0 生成清单

    我一直在尝试在 net 4 0 中使用 ETW 我已经开始使用 Microsoft EventSource Library 1 0 4 beta https www nuget org packages Microsoft Diagnost