哪里可以找到"Microsoft.VisualStudio.TestTools.UnitTesting"缺少dll?

Ami*_*Pal 122 c# dll visual-studio-2010

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

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

我也试图找到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");
    }
}
}
Run Code Online (Sandbox Code Playgroud)

Age*_*007 136

你必须添加引用

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 
Run Code Online (Sandbox Code Playgroud)

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

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

  • @ Agent007我知道.然而,OP留下评论表明它不起作用(至少对我来说)表明需要做更多的事情.在弄清楚还需要做什么之后,不要留下描述这样的评论似乎没有用. (4认同)
  • 刚刚遇到这个问题,这个答案就是解决方案.任何人都知道为什么会这样吗?为什么命名空间"Microsoft.VisualStudio.TestTools.UnitTesting"和程序集是"Microsoft.VisualStudio.QualityTools.UnitTestFramework"?为什么他们不能将它们命名为同一个东西? (4认同)
  • 我添加了dll引用,但它显示相同的错误:( (2认同)
  • 为什么接受这个?评论似乎表明它没有用.有人可以详细说明吗? (2认同)

Jes*_*rks 51

我知道这已经过时了,这就是我的谷歌搜索中出现的情况.我需要在NuGet上引用这些包:

在此输入图像描述

  • 就我而言(VS2019),我需要升级这些软件包,然后它解决了问题。干杯! (3认同)
  • 这需要标记为答案 (3认同)
  • 对我来说,添加 MSTest.TestFramework 的 PackageReference 确实是个窍门。我不需要引用 TestAdapter。(我猜后者是为了工具集成。例如:测试的自动发现。)但是,是的,这正是我需要的答案。谢谢! (2认同)
  • 您需要确保这些包是相同的版本。如果您只升级一个而不升级另一个,您的测试将无法进行。为什么这是两个独立的包裹,只有上帝和比尔·盖茨才能回答...... (2认同)
  • VS2022 中的情况也很奇怪。它起到了魅力的作用。 (2认同)

Joa*_*son 17

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

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Run Code Online (Sandbox Code Playgroud)

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

  • @AmitPal Visual Studio 2010 Express没有该DLL并且[无法添加](http://stackoverflow.com/questions/3424229/unit-testing-in-visual-c-sharp-2010-express)来制作单元测试工作(你必须使用像nUnit这样的第三方测试工具)如果你正在使用专业或者up,请参阅agent007的答案. (5认同)
  • 你能给我下载链接吗? (3认同)

Ras*_*ack 10

还有一个很好的nuget包.它会将dll拉到您的包文件夹.您需要手动添加对dll的引用.

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


小智 8

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

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

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


vap*_*guy 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;