在哪里找到缺少dll的“ Microsoft.VisualStudio.TestTools.UnitTesting”?


131

我在C#visual studio项目中遇到以下错误:

类型或名称空间名称“ VisualStudio”在名称空间“ Microsoft”中不存在(您是否缺少程序集引用?)

我也试图找到microsoft.dll文件,但找不到任何参考。我在搜索错误的DLL吗?

using Microsoft.VisualStudio.TestTools.UnitTesting;  
using Kya.MsFx.Services.Swiper;

namespace Kya.MsFx.Devices.Swiper.Test
{
[TestClass]
public class SwiperWindowTest
{

    private SwiperWebServiceHost m_SwiperWS = null;
    /// <summary>
    ///     start web service on a separate thread, so tests 
    ///     can be executed withut blocking the application thread
    /// </summary>
    [ClassInitialize]
    public void SetupSwiperTests() {

        m_SwiperWS = SwiperWebServiceHost.StartService();

    }

    /// <summary>
    /// Stop service started during class initialize and kill the thread
    /// </summary>
    [ClassCleanup]
    public void CleanupSwiperTests() {
        m_SwiperWS.Stop();
    }


    /// <summary>
    ///   simulate init, swipe, clear operations
    /// </summary>
    [TestMethod]
    public void TestSwiperService()
    {
        MessageBox.Show("test");
    }
}
}

1
添加了程序集引用后,您是否仍会得到完全相同的错误Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
约阿希姆·伊萨克森

Answers:


144

您必须添加参考

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

可以在“ C:\ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \”目录中找到(对于VS2010专业版或更高版本; .NET Framework 4.0)。

或右键单击您的项目,然后选择:添加引用...> .NET: 或单击添加引用...> .NET:


2
为什么这被接受?评论似乎表明它没有帮助。有人可以详细说明吗?
sirdank,2015年

@sirdank您确实意识到,除了OP之外没有人可以接受答案作为解决方案,不是吗?如果这对OP没有帮助,他将不会接受。
Agent007

4
@ Agent007我知道。但是,OP留下评论表明它没有用(至少对我而言)表明需要做更多的事情。在弄清楚还需要做些什么之后,不留下描述这种想法的评论似乎无济于事。
sirdank 2015年

6
刚遇到这个问题,而这个答案就是解决方案。任何人都知道为什么会这样吗?为什么命名空间Microsoft.VisualStudio.TestTools.UnitTesting和程序集是Microsoft.VisualStudio.QualityTools.UnitTestFramework?他们为什么不能同时给他们起同样的名字呢?
艾伦·托马斯

我绊倒的一种方法是,在构建Team Build时,它将根据版本查找在不同的文件夹中。微软的Visual Studio 10.0 VS 2010中,微软的Visual Studio 12.0 VS 2013,微软的Visual Studio 14.0 VS 2015
瑞恩·盖茨

67

我知道这很旧,这就是我的Google搜索中出现的内容。我需要在NuGet上引用这些软件包:

在此处输入图片说明


就我而言(VS2019),我需要升级这些软件包,然后它解决了该问题。干杯!
RJFalconer

这对我来说非常合适。我使用Rider,该应用程序最初是在VS中构建的。谢谢你把这个放在这里。
Yatin

17

您要查找的包含该名称空间的DLL是

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

请注意,单元测试不能在Visual Studio Express中使用


3
您能给我下载链接吗?
阿米特·帕尔

@AmitPal您拥有什么版本的Visual Studio?它应该包含在大多数版本中。
Joachim Isaksson

视觉工作室2010和.net 4.0
阿米特·帕尔

@AmitPal有关DLL路径的问题,请参见我的答案。它必须在那里。
Agent007

5
@AmitPal Visual Studio 2010 Express没有该DLL,并且无法添加该DLL 来进行单元测试(您必须使用nUnit等第三方测试工具)如果您使用的是Professional或更高版本,请参阅agent007的答案。
约阿希姆·伊萨克森

10

还有一个不错的nuget包。它将dll拉到您的packages文件夹。您将需要手动将引用添加到dll。

注意:此程序包不是官方的Microsoft程序包。


1
nuget软件包无法在带有VS2013的.net 4.0项目中安装。版本的唯一选项是11.0.50727.1。
WebComer

1
谁能说出这个头是否是微软真正拥有的?它似乎是包含Microsoft程序集的个人小玩意
-BozoJoe

9

要解决此问题,我必须执行以下操作:

  1. 使用管理权限启动Visual Studio安装程序
  2. 如果它提示您将更新安装到Visual Studio,请在继续之前进行安装
  3. 出现提示时,单击按钮以修改现有安装
  4. 单击顶部的“单个组件”选项卡/标题
  5. 向下滚动到“调试和测试”部分
  6. 选中“ Web性能和负载测试工具”旁边的框
  7. 单击对话框右下角的“修改”按钮以安装缺少的DLL。

安装DLL之后,您可以使用Agent007在其答案中指出的方法添加对它们的引用。


1
“ Web性能和负载测试工具”不再出现。您会建议我们选择什么呢?
Shafiq Jetha

@ShafiqJetha,我仍然看到“ Web性能和负载测试工具”的选项。我正在使用Visual Studio Enterprise 2017-15.8.9。您使用什么版本?自从我在上面撰写文章后,Microsoft似乎已经稍微改变了安装程序的界面。当我启动Visual Studio Installer(以管理员身份运行)时,单击“更新”和“启动”按钮右侧的“更多”按钮,然后选择“修改”,然后从列表中的第4步继续进行操作。我上面的帖子。
S. Hooley

我使用的是Visual Studio 2017的构建工具安装程序,因此可能会对此进行解释。
Shafiq Jetha

@ShafiqJetha您最终使用了什么?
Vin Shahrdar

老实说,@ VinShahrdar我不记得了;这是很久以前的事了。我认为我们可能通过使用其他人的NuGet包来获取所需的DLL来解决此问题。或者,也许我们将DLL保存到了仓库中。老实说,我不记得了,对不起。
Shafiq Jetha

8

如果您使用的是Visual Studio 2017社区,则位置为:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\v2.0

您想要的DLL位于: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

显然,它位于C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Visual Studio 2010 Professional版本的目录中,但请注意,10.0更改将与发行年份相对应,即VS 2013为12.0版本,VS 2015为14.0版本,VS 2017为15.0。(不支持VS Express,而是需要通过NuGet软件包管理器安装NUnit NuGet软件包。)

您转到参考,右键单击,选择添加参考,浏览。导航到路径,然后双击文件。

然后,using在单元测试类的顶部需要一个语句:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
通过浏览,它表示底部的“浏览”按钮,而不是左侧的“浏览”文件夹。
艾伦·巴尔吉

@AlanBaljeu非常正确。
vapcguy

0

即对于Visual Studio 2013,我将引用此程序集:

Microsoft.VisualStudio.Shell.14.0.dll

您可以在这里找到它:

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ BugAid Software \ BugAid \ 1.0

并且不要忘记实现:

使用Microsoft.VisualStudio;


0

如果您是因为VSTS生成作业失败而出现上述错误消息而来此的。确保您至少使用nuget任务的版本2. *还原软件包。


您知道为什么需要版本2. *吗?我们使用的是TFS 2017,正在遇到此错误。
DylanSp

我只是将代码从质量检查提升到了UAT,现在我在几乎相同的解决方案的同一父文件夹中的同一计算机上测试SAME单元​​测试。但是,没有。突然没有发现单元测试。。。。。。。。。
基督教

0

移动项目并删除它的packages文件夹后,出现此问题。Nuget显示已安装MSTest.TestAdapter和MSTest.TestFramework v 1.3.2。解决的办法似乎是以管理员身份打开VS并进行构建。之后,我可以在没有管理员权限的情况下重新打开并进行构建。


0

添加对“ Microsoft.VisualStudio.QualityTools.UnitTestFramework” NuGet数据包的引用,它应该成功构建它。


我敢肯定,其他七个建议这种精确解决方案的条目不会传达给读者。当您重复时,重复甚至更好。
基督教

0

使用运行.net core 3.1项目的Visual Studio 2019,您将需要安装最新的测试框架来解决该错误。

实现此目的最简单的方法是将浏览器悬停在[Test]注释(红色下划线)上,然后选择建议的修复程序。所需的一个是“搜索并安装最新的测试框架”。


-4

只需引用此URL,然后在以下位置下载并保存所需的dll文件:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies

网址是: https://github.com/NN---/vssdk2013/find/master

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.