首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CI构建的参考Microsoft.VisualStudio.QualityTools.UnitTestFramework

CI构建的参考Microsoft.VisualStudio.QualityTools.UnitTestFramework
EN

Stack Overflow用户
提问于 2015-06-02 19:50:33
回答 5查看 16.8K关注 0票数 36

我已经在VS2015 RC中创建了一个C#测试项目。它在本地构建,但当我尝试在CI构建服务器(TeamCity)上构建时,它会失败,并显示错误:

UnitTest1.cs(2,17):error CS0234:类型或命名空间名称'VisualStudio‘在命名空间'Microsoft’中不存在(是否缺少程序集引用?) ... .Tests.csproj UnitTest1.cs(9,10):错误CS0246:未能找到类型或命名空间名称'TestMethod‘(是否缺少using指令或程序集引用?) ... .Tests.csproj

显然,这是因为包含这些名称空间的程序集(Microsoft.VisualStudio.QualityTools.UnitTestFramework)不在构建服务器上;在我的本地计算机上,它驻留在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll上。

我可以将程序集复制到我的解决方案中,这样它就成为代码库的一部分,但是手动移动文件感觉有点笨拙。我在nuget上到处搜索,找到了http://www.nuget.org/packages/Microsoft.VisualStudio.QualityTools.UnitTestFramework/,我认为它可以做到这一点,但安装该软件包失败了,并显示以下信息:

安装程序包:无法安装程序包'Microsoft.VisualStudio.QualityTools.UnitTestFramework 11.0.50727.1‘。您正尝试将此程序包安装到目标为'.NETFramework,Version=v4.5.2‘的项目中,但该程序包不包含任何与该框架兼容的程序集引用或内容文件

我解决这个问题的最佳选择是什么?令我惊讶的是,在VS2015中创建一个测试项目并没有自动包含我需要的所有依赖项,尽管我可能太天真了(我是一个初出茅矩的网民)。

EN

回答 5

Stack Overflow用户

发布于 2017-06-27 16:27:40

答案类似于eng.augusto's answer中的选项1。

微软没有为最新版本的Microsoft.VisualStudio.QualityTools.UnitTestFramework,提供NuGet,而是将其作为Visual Studio (normally at C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)的一部分提供。

我创建了文件夹Microsoft.VisualStudio.QualityTools作为我的解决方案的子文件夹,并复制了:

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll Microsoft.VisualStudio.QualityTools.UnitTestFramework.xml

应将这些文件添加到源代码管理中(即使通常忽略DLL)。

然后,我更改了Test.csproj中的引用,以引用一个新位置。

票数 6
EN

Stack Overflow用户

发布于 2015-09-03 05:59:47

嗯,我有一些想法,所以选择一个最适合你的需求

简单的答案应该是将DLL标记为本地复制,并在解决方案的同一文件夹中使用类似于的文件夹,并引用生成服务器中的"Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll"

  1. Install
  2. 。听起来很疯狂,但它是你拥有的最接近“开发人员的机器”。
  3. 安装DLL in the GAC,所以你不必为此烦恼。
  4. 修复NuGet包(为.NET框架版本添加一个参考)并使用它。
  5. 降低你的.NET框架版本,以便你可以使用你自己的NuGet NuGet服务器!(并添加所需DLL的引用)。

我选择第一个答案,因为这似乎是使用NuGet解决所有包问题的“最佳方式”,但您使用的DLL不知道它是否值得信任。

在使用“旧”语言的系统中,如C或C++,通常需要下载源代码和运行代码所需的库,所以我不认为NuGet包是最好的解决方案。

使用第一个选项,您总是拥有相同的版本,并且可以检查文件的MD5,并确切地知道构建服务器上运行的是什么。

也许真正的最佳选择应该是6。当你使用自己的NuGet服务器来处理你的DLL时,让你的生活变得更棒、更值得信赖。

票数 4
EN

Stack Overflow用户

发布于 2018-02-09 17:55:31

用于在VS 2017中创建的项目。添加Nuget包Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated允许在CI上构建单元测试项目,而无需在构建服务器上安装VS:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30595283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档