在 Bamboo 上使用 MSBuild 构建我的解决方案时遇到问题

Having troubles building my solution with MSBuild on Bamboo

我有一个 windows 应用程序是在 Visual Studio 2015 专业框架 - 4.6.1 中开发的。我已经使用 MStest 为这个 windows 服务编写了单元测试用例。如果我在我的机器上本地构建此应用程序,则构建成功(构建由 Visual Studio -> Build-> Build Solution 并通过 MSBuild 完成)。

现在我有一个 visual studio 2015 不是 installed.But 的虚拟机,上面安装了 VS2017。现在我正在尝试通过 Bamboo 通过 MSBuild 构建我的应用程序。它给出了以下错误。

UnitTest1.cs(2,17): error CS0234: The type or namespace 
name 'VisualStudio' does not exist in the namespace 'Microsoft' (are you
 missing an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

UnitTest1.cs(9,10): error CS0246: The type or namespace 
name 'TestMethod' could not be found (are you missing a using directive 
or an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

UnitTest1.cs(9,10): error CS0246: The type or namespace 
name 'TestMethodAttribute' could not be found (are you missing a using 
directive or an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

UnitTest1.cs(6,6): error CS0246: The type or namespace 
name 'TestClass' could not be found (are you missing a using directive 
or an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

UnitTest1.cs(6,6): error CS0246: The type or namespace 
name 'TestClassAttribute' could not be found (are you missing a using 
directive or an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

这些错误非常令人困惑,因为我已经引用了 Microsoft.VisualStudio.QualityTools.UnitTestFramework,但仍然显示这些错误。

我觉得这些错误的原因如下(可能是完全错误的)。

  1. 我的构建环境中没有 Visual Studio 2015 导致此问题。或

  2. 当我在我的代码中查看这个特定引用的属性时,它的路径显示为“C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll”。但是在我构建代码的虚拟机中没有名称为 Microsoft Visual Studio 14.0 的文件夹。我怎么得到这个。是通过安装 Visual Studio 2015 吗?

任何人都可以帮助我解决这个问题,因为我被困在这里了。

Having troubles building my solution with MSBuild on Bamboo

就像你发现单元测试项目仍然使用来自 Visual Studio 2015 的旧特定引用一样。要解决此问题,你可以使用 Visual Studio 2017 打开单元测试项目并删除旧引用 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll,然后从 Visual Studio 2017 安装文件夹添加它:

C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

此外,MsTest 已作为新的 NuGet 包解决方案发布,不再与 Visual Studio 版本紧密耦合。新项目默认使用 Visual Studio 2017 中的 MsTest 2.0。它使用 Microsoft.VisualStudio.TestPlatform.TestFramework 而不是 Microsoft.VisualStudio.QualityTools.UnitTestFramework。所以你也可以尝试从 VS2017 中创建一个新的 UnitTest 项目。也许更改旧测试项目的程序集引用也可以。使用新参考 VS2017 确实发现了那些单元测试。

有关详细信息,请参阅:Announcing MsTest 2.0

我已经通过将测试项目中的引用从 Microsoft.VisualStudio.QualityTools.UnitTestFramework 更改为 MSTest.TestFramework 解决了这个问题。