ChatGPT解决这个技术问题 Extra ChatGPT

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

我的 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");
    }
}
}
将程序集引用添加到 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 后,您是否仍然遇到完全相同的错误?

G
GabLeRoux

您必须添加参考

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

可以在C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\目录找到(VS2010专业版或以上;.NET Framework 4.0)。

https://i.stack.imgur.com/zSoWQ.png


为什么这被接受了?评论似乎表明它没有帮助。有人可以详细说明吗?
@sirdank您确实意识到除了OP之外没有人可以接受答案作为解决方案,不是吗?如果它对 OP 没有帮助,他就不会接受它。
@Agent007 我知道。但是,OP 留下评论表明它不起作用(至少对我而言)表明需要做更多的事情。在弄清楚还需要做什么之后,不留下评论来描述这些似乎没有帮助。
刚遇到这个问题,这个答案就是解决方案。任何人都知道为什么会这样?为什么命名空间是 Microsoft.VisualStudio.TestTools.UnitTesting 而程序集是 Microsoft.VisualStudio.QualityTools.UnitTestFramework?为什么他们不能将它们命名为相同的东西?
我被绊倒的一种方式是,当 Team Build 构建时,它会根据版本在不同的文件夹中查找。适用于 VS 2010 的 Microsoft Visual Studio 10.0、适用于 VS 2013 的 Microsoft Visual Studio 12.0、适用于 VS 2015 的 Microsoft Visual Studio 14.0。
J
Jesse Sierks

我知道这是旧的,这是我在谷歌搜索中出现的。我需要在 NuGet 上引用这些包:

https://i.stack.imgur.com/fsFHf.png


就我而言(VS2019),我需要升级这些软件包,然后它解决了问题。干杯!
对我来说,为 MSTest.TestFramework 添加 PackageReference 就是诀窍。我不需要引用 TestAdapter。 (我猜后者是用于工具集成。例如:测试的自动发现。)但是,这正是我需要的答案。谢谢!
您需要确保这些包是相同的版本。如果您只升级一个而没有另一个,您的测试将无法正常工作。为什么这些是只有上帝和比尔盖茨才能回答的两个单独的包......
这需要标记为答案
VS2022 中的奇数球也是如此。它是一种魅力。
C
Community

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

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

请注意单元测试 cannot be used in Visual Studio Express


请给我下载链接好吗?
@AmitPal 你有什么版本的 Visual Studio?它应该包含在大多数版本中。
视觉工作室 2010 和 .net 4.0
@AmitPal 请参阅我对 DLL 路径的这个问题的回答。它必须在那里。
@AmitPal Visual Studio 2010 Express 没有该 DLL,它cannot be added 可以进行单元测试(您必须使用第三方测试工具,如 nUnit)如果您使用的是专业版或更高版本,请参阅 agent007 的答案。
S
S. Hooley

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

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

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


“Web 性能和负载测试工具”不再出现。您会建议我们选择什么?
@ShafiqJetha,我仍然看到“Web 性能和负载测试工具”选项。我正在使用 Visual Studio Enterprise 2017 - 15.8.9。你用的是什么版本?自从我写了上面的帖子以来,微软似乎稍微改变了安装程序的界面。当我启动 Visual Studio 安装程序(以管理员身份运行)时,我单击“更新”和“启动”按钮右侧的“更多”按钮,然后选择“修改”,然后继续执行列表中的第 4 步我上面的帖子。
我正在使用 Visual Studio 2017 的构建工具安装程序,所以这可能会解释它。
@ShafiqJetha 你最后用了什么?
这是正确的答案。
R
Rashack

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

注意:此软件包不是 Microsoft 官方软件包。


使用 VS2013 无法在 .net 4.0 的项目中安装 nuget 包。版本的唯一选项是 11.0.50727.1。
谁能说这个 nuget 是否真的是 Microsoft 拥有的?它似乎是一个包含 Microsoft 程序集的个人 nuget
这表示它适用于 VS 2012,并表示“所有者已取消列出此软件包”。
v
vapcguy

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

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

您需要的 DLL 在那里:Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

显然它位于 Visual Studio 2010 Professional 版本的 C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\ 目录中,但请注意 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;


浏览是指底部的浏览按钮,而不是左侧的浏览文件夹。
@AlanBaljeu 非常正确。
c
creg

即对于 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;


J
Jim Wolff

如果您来到这里是因为您的 VSTS 构建作业失败并显示上述错误消息。确保您至少使用 nuget 任务的 2.* 版本来恢复您的包。


你知道为什么需要版本 2.* 吗?我们在 TFS 2017 上并且遇到了这个错误。
我刚刚将代码从 QA 提升到 UAT,现在我正在同一台计算机上以几乎相同的解决方案在同一父文件夹中测试相同的单元测试。但是nooo..突然没有发现单元测试....我厌倦了他们在晚年创造的微软路径地狱。
K
Kirsten

移动项目并删除它的包文件夹后,我遇到了这个问题。 Nuget 显示已安装 MSTest.TestAdapter 和 MSTest.TestFramework v 1.3.2。修复似乎是以管理员身份打开 VS 并构建之后,我能够在没有管理员权限的情况下重新打开和构建。


S
Sanjeev Kumar

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


我敢肯定,其他七个建议这个确切解决方案的条目并没有传达给读者。当你重复时,重复会更好。
S
Stanley Tonkonogy

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

完成此操作的最简单方法是将浏览器悬停在 [Test] 注释(红色下划线)上并选择建议的修复。需要的是“搜索并安装最新的测试框架”。


T
Tommy Grovnes

只需参考此 URL 并在此位置下载并保存所需的 dll 文件:

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

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅