C#学习教程:MSBuild 15 – 命名空间中不存在类型或命名空间“Fakes”分享


MSBuild 15 – 命名空间中不存在类型或命名空间“Fakes”

我正在尝试为一个项目设置自动构建和unit testing,该项目使用Fakes库进行unit testing。 该项目在我的Windows 10 PC(安装了VS 2017 Enterprise)上构建和测试正常,但是使用相同的命令在构建服务器(也是VS 2017 Enterprise的Windows 10)上编译项目会产生关于Fakes not existing的几个错误。 确切的错误如下所示:

XControllerTests.cs(10,20): error CS0234: The type or namespace 'Fakes' does not exist in the namespace 'System.Data.Common' (are you missing an assembly reference?) [C:RunnerbuildsxxxXTests.csproj]

根据我的研究,这是由使用旧版本的MSBuild引起的,但是我检查了服务器,并确认它已安装了visual studio的最新版本和更新。 我还确认构建脚本使用的是正确版本的MSBuild.exe,即c:Program Files (x86)Microsoft Visual Studio2017EnterpriseMSBuild15.0BinMSBuild.exe 。 在我的桌面上使用此版本正确编译项目。

为什么构建不能在(相同的设置)构建服务器上运行?

为了扩展@McMlok上面的答案,我将包括我所做的。

复制Fakes文件夹:

复制Microsoft.QualityTools.Testing.Fakes.ImportAfter.targets文件:

复制Microsoft.QualityTools.Testing.Fakes.dll文件:

现在建立得很好。 谢谢麦克默克。

我有一些解决方法,但它不优雅。

如果有C:Program Files (x86)Microsoft Visual Studio2017EnterpriseMSBuildMicrosoftVisualStudiov15.0文件夹,则需要检查路径C:Program Files (x86)Microsoft Visual Studio2017EnterpriseMSBuildMicrosoftVisualStudiov15.0 。 如果不是,则需要安装TestTools工作负载或从其他计算机进行复制。

接下来你需要检查C:Program Files (x86)Microsoft Visual Studio2017EnterpriseMSBuild15.0Microsoft.Common.TargetsImportAfter如果有文件Microsoft.QualityTools.Testing.Fakes.ImportAfter.targets如果没有从另一台机器复制它。 在这个文件中是用于包括伪造目标以构建进程的代码。

最后,您需要检查GAC中是否有汇编Microsoft.QualityTools.Testing.Fakes.dll或MSBuild找到它的其他位置。

这是我使用MS Build Tools 2017在我的构建机器上完成的,现在构建生成伪造程序集。

上述就是C#学习教程:MSBuild 15 – 命名空间中不存在类型或命名空间“Fakes”分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960004.html

发表评论

邮箱地址不会被公开。 必填项已用*标注