是否可以让SLAB使用Microsoft.Diagnostics.Tracing.EventSource?

时间:2016-01-28 14:10:39

标签: c# etw slab ms-tracing-eventsource

官方release notes说:

  

改进了与EventSource nuget包的兼容性

     
      
  • 必须更新和重建SLAB的源代码以使用EventSource nuget包(它支持通道,但不支持   支持抽样)。这个过程现在相当轻松。      
        
    • 向所有项目添加了对EventSource nuget包的引用
    •   
    • 在所有源文件中将System.Diagnostics.Tracing更改为Microsoft.Diagnostics.Tracing
    •   
    • 在单元测试项目中定义EVENT_SOURCE_PACKAGE常量(禁用无法使用nuget版本的测试)。
    •   
  •   

这有点神秘。有些东西似乎倒退了,因为在Nuget下载中我根本看不到Microsoft.Diagnostics.Tracing的任何引用。

或者是要做的子弹来实现它(所以它应该说,添加,更改,定义而不是添加,更改,定义)?

嗯,那些说明(如果它们是指示)是不够的:

  • 有三个地方已经引用了Microsoft.Diagnostics.Tracing,因此提供了重复的警告
  • Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Etw.Configuration.EventSourceSettings(这是一个类)和Microsoft.Diagnostics.Tracing.EventSourceSettings(这是一个枚举)之间,有多个地方出现歧义。

3 个答案:

答案 0 :(得分:1)

一些侦探工作和常识:

SLAB的最后发布日期是2014年7月25日,已经出现了Microsoft.Diagnostics.Tracing.EventSource版本的全部版本,包括一个可能无意中引入EventSourceSettings的版本。

如果我安装并引用版本1.0.26,则说明有效。

现在只需要找出版本1.1.28中遗漏的内容,以及我是否想念它们。

答案 1 :(得分:1)

所以,我只是按照上面的说明使用SLAB 1.1.28以及来自Microsoft.Diagnostics.Tracing.EventSource命名空间的最新NuGet EventSource,使SLAB使用NuGet EventSource包。

基本上,您需要修复Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Etw.Configuration.EventSourceSettings和Microsoft.Diagnostics.Tracing.EventSourceSettings之间的模糊引用,就像上面所说的那样。

您需要Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Etw.Configuration.EventSourceSettings参考。

它可以工作,生成平面文件日志并写入事件查看器,当与PerfView等控制器一起使用时,会生成ETL文件以进行详细分析。

接下来,我将测试进程外案例。

答案 2 :(得分:0)

@ Benjol的侦探工作是正确的。

许多用户希望能够在SLAB中使用EventSource通道(包含在EventSource NuGet包中),因此改进了兼容性,以便在发布时对EventSource包进行编译非常轻松。

但是,SLAB最近没有更新,但EventSource Package继续添加/修改功能。其中一些可能会破坏当前SLAB实施的变化。由于与后续版本的EventSource的兼容性可能尚未经过测试(我不确定团队对此做了什么),因此可能存在潜在问题。