0

我的代码中有一个未处理的异常,它破坏了我的 testhost.exe 进程并使我的天蓝色管道构建失败(恰好在 VSTest 任务中)。

异常:0xC0000005:访问冲突读取位置 0xFFFFFFFFFFFFFFFF

在分析了crush的转储文件后,我发现当我尝试使用“PdfManger”类的“save”方法将我的pdf文档保存在指定的流中时出现这个异常,我使用的是Select.Pdf.x64库。

有关信息:我正在将我的构建从 xaml 构建迁移到 azure 管道构建,并将测试框架从 MSTest 升级到 MSTestV2,我正在使用带有“发布”配置的 MSBuild 任务和“任何 CPU”作为平台,对于“VSTest”任务,我使用“x64”作为构建平台,“发布”作为配置,MSTest.TestAdapter.2.1.1 作为测试适配器,我使用的是 VS 2019,这是运行设置文件:


<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration> 
    <MaxCpuCount>0</MaxCpuCount>
    <ResultsDirectory>.\TestResults</ResultsDirectory>
    <TargetPlatform>x64</TargetPlatform>
    <TargetFrameworkVersion>.NETFramework,Version=v4.7.2</TargetFrameworkVersion>
    <DisableParallelization>false</DisableParallelization> 
  </RunConfiguration>
  <MSTest>
    <TestTimeout>360000</TestTimeout>
    <Parallelize>
      <Workers>10</Workers>
      <Scope>MethodLevel</Scope>
    </Parallelize>
  </MSTest>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="blame" enabled="True">
        <Configuration>
          <ResultsDirectory>.\TestResults</ResultsDirectory>
          <CollectDump />
          <CollectDump />
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
  <LoggerRunSettings>
    <Loggers>
      <Logger friendlyName="blame" enabled="True" />
    </Loggers>
  </LoggerRunSettings>
</RunSettings>

--------------------------------------------------------------------------------------------------

我试图通过使用装饰器“[HandleProcessCorruptedStateExceptions, SecurityCritical] 装饰负责异常的方法来捕获异常,但没有成功:(。

有人有解决方案吗?

4

2 回答 2

0

访问冲突异常的 testhost.exe 粉碎

从 Visual Studio 2019 开始存在一个已知问题16.4.3

要解决此问题,请尝试将您的 Visual Studio 2019 更新到最新版本。

于 2020-08-14T07:01:12.700 回答
0

降级到 mstest v1 一切正常,这似乎与 QTAgent 进程有关,因为只有 mstest v1 通过 testhost 进程启动 QTAgent 进程。​​感谢帮助:)

于 2020-08-25T10:32:36.920 回答