【发布时间】:2018-03-26 15:08:14
【问题描述】:
我们所有的单元测试项目(大约 8 个)刚刚停止编译,我找不到任何好的理由。
“错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“VisualStudio”(您是否缺少程序集引用?)”
从 TeamCity (v2017.2.2) 构建日志中,项目缺少 Microsoft.VisualStudio.QualityTools.UnitTestFramework DLL,错误代码为 CS0234 和 CS0246。我看不到任何可能导致它的代码更改 但是,服务器重新启动可能会引发一些待处理的更改。
已检查的内容
- 使用 Visual Studio (SLN) 和 MSBuild 运行器步骤检查,两者都给出了相同的结果(MSBuild 之前工作正常,而 Visual Studio 在 C# 6/7 代码上失败,这是我们更改为更新的原因MSBuild 版本)
- 如果解决方案在 Visual Studio 2017 Enterprise 中打开(安装在构建服务器上),这些测试项目可以在同一构建服务器上正常构建
项目参考配置
<Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
</ItemGroup>
</Otherwise>
</Choose>
MSBuild 版本
我们在 Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin 中使用 MSbuild v15.6.82.30579,而不是 C:\Windows\Microsoft.NET\ 中的默认版本Framework64\v4.0.30319(添加到环境变量中)
任何建议将不胜感激。如果有帮助的话,我真的不想开始向 GAC 添加 DLL。
【问题讨论】:
标签: unit-testing msbuild teamcity