官方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
(这是一个枚举)之间,有多个地方出现歧义。答案 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的兼容性可能尚未经过测试(我不确定团队对此做了什么),因此可能存在潜在问题。