我将包含一些单元测试项目的VS2008解决方案转换为VS2010。转换后我尝试编译解决方案,但是我收到以下错误:
名称空间“Microsoft”中不存在类型或命名空间名称“VisualStudio”(您是否缺少程序集引用?)
无法找到名称空间声明using Microsoft.VisualStudio.TestTools.UnitTesting;
。另外,当我尝试添加新的项目引用时,我找不到Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集。
有谁知道我做错了什么?
答案 0 :(得分:71)
它被称为Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
。
您可以在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
找到它。
答案 1 :(得分:22)
我也遇到了这个问题,并且还有一个Microsoft.Data.Schema库。答案是正确的,因为这些库位于机器上和VS 10.0目录中。
问题(至少对我来说)是解决方案是从VS2008转换而转换实用程序是针对.NET 3.5的项目。由于10.0库需要.NET 4.0,因此编译器不会选择它们。
解决方案是恢复使用VS2008,这些解析正确;或者将项目切换为.NET 4.0编译,以便您可以使用可用的库。
答案 2 :(得分:5)
对于 Visual Studio 2015 用户:
有类似的问题,但是使用Visual Studio 2015将Prism 2.2版本的Prism WPF应用程序StockTraderRI Unity版本升级到5.0版本.5.0版本使用了MEF,我需要Unity版本。
我所做的步骤是:
答案 3 :(得分:4)
对于VSTS 2010,请确保在参考文献中包含以下内容:
Microsoft.VisualStudio.QualityTools.UnitTestFramework
Microsoft.VisualStudio.QualityTools.WebTestFramework(如果有的话) 做网络测试)
答案 4 :(得分:0)
请去下载visual studio 2010 SP1。安装它。然后,它将允许您将测试项目的框架工作从以前的默认4.0更改为3.5和其他。只需将框架工作更改为要测试的项目的框架工作版本即可。现在代码将和平地结合,您将能够运行测试。
答案 5 :(得分:0)
+ Erik Brown是对的,问题是VS2010支持将项目定位到.NET 3.5,但不支持.NET 3.5项目中的单元测试。
但是,由于在您的代码将在生产中运行的框架下测试代码是有意义的,因此需要使其工作。一个简单的方法就是使用NUnit ,并使用Resharper从Visual Studio或NUNit测试运行器中运行测试。 NUnit与.NET v2.x - v4.x一起使用,只有一组二进制文件。