在 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
,但仍然显示这些错误。
我觉得这些错误的原因如下(可能是完全错误的)。
我的构建环境中没有 Visual Studio 2015 导致此问题。或
当我在我的代码中查看这个特定引用的属性时,它的路径显示为“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
解决了这个问题。
我有一个 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
,但仍然显示这些错误。
我觉得这些错误的原因如下(可能是完全错误的)。
我的构建环境中没有 Visual Studio 2015 导致此问题。或
当我在我的代码中查看这个特定引用的属性时,它的路径显示为“
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
解决了这个问题。