Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ProgrammableDataQuery添加自定义IntelliTrace诊断事件_C#_Visual Studio_Visual Studio 2015_Intellitrace - Fatal编程技术网

C# 使用ProgrammableDataQuery添加自定义IntelliTrace诊断事件

C# 使用ProgrammableDataQuery添加自定义IntelliTrace诊断事件,c#,visual-studio,visual-studio-2015,intellitrace,C#,Visual Studio,Visual Studio 2015,Intellitrace,我为IntelliTrace创建了两个自定义的DiagnosticEventSpecification。这正如预期的那样有效 <DiagnosticEventSpecification enabled="true"> <Bindings> <Binding onReturn="false"> <ModuleSpecificationId>DiagnosticsTester</ModuleSpecifica

我为IntelliTrace创建了两个自定义的
DiagnosticEventSpecification
。这正如预期的那样有效

 <DiagnosticEventSpecification enabled="true">
    <Bindings>
      <Binding onReturn="false">
        <ModuleSpecificationId>DiagnosticsTester</ModuleSpecificationId>
        <TypeName>DiagnosticsTester.IntellitraceTest</TypeName>
        <MethodName>TestTrace2</MethodName>
        <MethodId>DiagnosticsTester.IntellitraceTest.TestTrace2(System.String):System.Void</MethodId>
        <ShortDescription _locID="IntelliTraceEnterEvent_ShortDescription">The method TestTrace2.1 was called</ShortDescription>
        <LongDescription _locID="IntelliTraceEvent_LongDescription">View the Locals window for details about the collected data</LongDescription>
        <AutomaticDataQuery level="All" />
      </Binding>
      <Binding onReturn="true">
        <ModuleSpecificationId>DiagnosticsTester</ModuleSpecificationId>
        <TypeName>DiagnosticsTester.IntellitraceTest</TypeName>
        <MethodName>TestTrace2</MethodName>
        <MethodId>DiagnosticsTester.IntellitraceTest.TestTrace2(System.String):System.Void</MethodId>
        <ShortDescription _locID="IntelliTraceExitEvent_ShortDescription">The method TestTrace2.1 returned</ShortDescription>
        <LongDescription _locID="IntelliTraceEvent_LongDescription">View the Locals window for details about the collected data</LongDescription>
        <AutomaticDataQuery level="All" />
      </Binding>
    </Bindings>
    <CategoryId>IntelliTrace.generated.8889ce9d-2320-40c0-a6bf-dfac215354d2</CategoryId>
    <SettingsName _locID="">DiagnosticsTester.IntellitraceTest.TestTrace2</SettingsName>
    <SettingsDescription _locID=""></SettingsDescription>
  </DiagnosticEventSpecification>

我已将dll放置在IntelliTrace独立采集器之外的VS2015文件夹中,用于IntelliTrace
C:\Program Files(x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\14.0.0

带有PDQ的dll应放在带有IntelliTace.exe程序的文件夹中。换句话说,如果您使用集成到Visual Studio中的IntelliTrace,则应将UnitQuery.dll复制到您提到的文件夹,即:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\14.0.0
顺便说一下,在此文件夹中,您还可以找到Microsoft.VisualStudio.DefaultDataQueries,它是VS使用的具有默认PDQ的dll

但是,如果使用独立集合,则必须将dll复制到其安装目录

我做了很多次,效果很好。如果dll是在平台目标设置为任何CPU的情况下编译的,也值得验证。它将允许避免兼容性问题

我的最后一点意见是,您的带有PDQ的dll不仅需要捕获日志,还需要:

  • 在VS中打开它
  • 使用IntelliTrace API对其进行分析
例如,如果您:

  • 使用独立集合捕获日志
  • 您想在Visual Studio中打开此日志

然后必须将UnitQuery.dll复制到两个位置。

您是否将独立集合或IntelliTrace集成到VS中以捕获跟踪?我已经完成了所有这些。问题是我没有在每次编辑或编译自定义DLL时关闭并重新打开VS
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\14.0.0