我试图在Azure DevOps中向构建管道中添加一个任务,以便使用dotCover命令行工具计算代码覆盖率。但是,我得到了以下错误。
未处理异常: System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.VisualStudio.QualityTools.Common、Version=14.0.0.0、Culture=neutral、PublicKeyToken=b03f5f7f11d50a3a‘或其依赖项之一。系统找不到指定的文件。
在Microsoft.VisualStudio.TestTools.RunnerCommandline.Runner.Main(String[] args)
我将程序集Microsoft.VisualStudio.QualityTools.Common的引用添加到我们的测试项目中,并将设置为true,以便将其复制到bin文件夹中。
下面是我执行dotCover的命令(我将dotCover和MSTEST添加到我们的项目中,以便我们可以从Azure DevOps运行它)。
/TargetArguments="/testcontainer:\MyServices.Tests\bin\MyServices.Tests.dll“
dotCover.exe分析/TargetExecutable="Tools\MSTest\MSTest.exe”Tools\MSTest\MSTest.exe/Output=output.html“/ReportType=”
更新09.10.2019
这里是对我的.csproj中的程序集的引用。我添加了对程序集的v15的引用。
<Reference Include="Microsoft.VisualStudio.QualityTools.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />发布于 2019-10-03 07:59:46
从Azure DevOps获取运行dotCover时的错误
众所周知,程序集Microsoft.VisualStudio.QualityTools.Common是Visual的一部分。
当您将程序集Microsoft.VisualStudio.QualityTools.Common添加到测试项目时,您将在项目文件.csproj中得到以下结果。
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>即使您将Copy Local设置为true,以便将其复制到bin文件夹中。但是默认情况下,\bin文件夹会被.gitignore/.tfignore忽略。使用Azure构建项目时,它仍将从PublicAssemblies文件夹中搜索dll文件。
如果我们没有在生成代理计算机上安装Visual 2015,我们将找不到它。
因此,要解决此问题,需要在生成代理计算机上安装Visual 2015,然后检查是否存在PublicAssemblies文件夹uder,然后检查文件Microsoft.VisualStudio.QualityTools.Common.dll是否存在。
此外,如果不希望在生成代理计算机上安装Visual 2015,可以将该Microsoft.VisualStudio.QualityTools.Common.dll从PublicAssemblies文件夹复制到项目/解决方案文件夹,然后将其添加为引用而不是从PublicAssemblies文件夹中添加,然后您将得到以下结果:
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>.\Microsoft.VisualStudio.QualityTools.Common.dll</HintPath>
</Reference>
</ItemGroup>然后,将这个.dll文件添加到源代码管理中,并将其提交给Azure repos。
希望这能有所帮助。
https://stackoverflow.com/questions/58200381
复制相似问题