【问题标题】:Standalone Microsoft.Windows.EventTracing.Processing独立的 Microsoft.Windows.EventTracing.Processing
【发布时间】:2019-05-08 22:55:23
【问题描述】:

可以在没有 Microsoft.Windows.EventTracing.Processing.All 包的情况下使用 Microsoft.Windows.EventTracing.Processing 吗?说明推荐All包,但是没有它是否可以使用Microsoft.Windows.EventTracing.Processing?

【问题讨论】:

    标签: .net-traceprocessing


    【解决方案1】:

    我们不建议单独使用 Microsoft.Windows.EventTracing.Processing,但这是可能的。 .All 包包含运行 TraceProcessor 所需的本机 Windows 性能工具包二进制文件,但如果您已在某处安装了正确版本的 WPT,则可以强制 TraceProcessor 使用该版本。

    请注意,您需要自己选择正确的位数,并确保它是正确的、受支持的 WPT 版本,这就是我们通常不推荐这种方法的原因。这是它的样子:

    TraceProcessorSettings settings = new TraceProcessorSettings
    {
        ToolkitPath = @"X:\path\to\correct\WindowsPerformanceToolkit"
    };
    
    using (ITraceProcessor trace = TraceProcessor.Create(tracePath, settings))
    {
        // ...
    }
    

    【讨论】:

    • 也可以直接安装msi吗?我在第一次调用时遇到问题,因为由于库的单线程性质,我添加了多个进程。现在第一次安装将由于并发安装尝试而失败
    • 这是可能的,但要做到正确可能有点棘手。我建议让 TraceProcessor 为你做这件事——也许有一个众所周知的跟踪文件,你使用单线程来安装东西,然后并行运行。
    • 我用 TraceProcessor.Create("notexisting.etl") 打开了一个不存在的 ETL 文件,并在它产生子进程之前从主进程中尝试捕获它。这很好地解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多