Wo finde ich "Microsoft.VisualStudio.TestTools.UnitTesting" fehlende DLL?

131

In meinem C # Visual Studio-Projekt wird folgende Fehlermeldung angezeigt:

Der Typ- oder Namespace-Name 'VisualStudio' ist im Namespace 'Microsoft' nicht vorhanden (fehlt Ihnen eine Assemblyreferenz?)

Ich habe auch versucht, die Datei microsoft.dll zu finden, konnte aber keine Referenz finden. Suche ich die falsche 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");
    }
}
}
Amit Pal
quelle
1
Erhalten Sie nach dem Hinzufügen der Baugruppenreferenz zu immer noch genau den gleichen Fehler Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
Joachim Isaksson

Antworten:

144

Sie müssen einen Verweis auf hinzufügen

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Es befindet sich im Verzeichnis "C: \ Programme \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \" (für VS2010 Professional oder höher; .NET Framework 4.0).

oder klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie: Referenz hinzufügen ...> .NET: oder klicken Sie auf Referenz hinzufügen ...> .NET:

Agent007
quelle
2
Warum wurde das akzeptiert? Die Kommentare scheinen darauf hinzudeuten, dass es nicht hilfreich war. Könnte jemand näher darauf eingehen?
Sirdank
@sirdank Sie erkennen, dass niemand außer dem OP eine Antwort als Lösung akzeptieren kann, nicht wahr? Wenn es für das OP nicht hilfreich gewesen wäre, hätte er es nicht akzeptiert.
Agent007
4
@ Agent007 Ich weiß. Das OP, das einen Kommentar hinterlässt, der darauf hinweist, dass es nicht funktioniert hat, deutet jedoch (zumindest für mich) darauf hin, dass noch etwas getan werden muss. Nachdem Sie herausgefunden haben, was noch getan werden muss, erscheint es nicht hilfreich, keinen Kommentar zu hinterlassen, der dies beschreibt.
Sirdank
6
Hatte gerade dieses Problem und diese Antwort war die Lösung. Hat jemand einen Einblick, warum dies der Fall ist? Warum ist der Namespace Microsoft.VisualStudio.TestTools.UnitTestingund die Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework? Warum konnten sie nicht beide dasselbe nennen?
Alan Thomas
Eine Möglichkeit, auf die ich gestoßen bin, war, dass Team Build-Builds je nach Version in einem anderen Ordner angezeigt werden. Microsoft Visual Studio 10.0 für VS 2010, Microsoft Visual Studio 12.0 für VS 2013, Microsoft Visual Studio 14.0 für VS 2015.
Ryan Gates
67

Ich weiß, dass dies alt ist. Dies ist in meiner Google-Suche aufgetaucht. Ich musste diese Pakete auf NuGet referenzieren:

Geben Sie hier die Bildbeschreibung ein

Jesse Sierks
quelle
In meinem Fall (VS2019) musste ich diese Pakete aktualisieren, dann wurde das Problem behoben. Prost!
RJFalconer
Das funktioniert perfekt für mich. Ich benutze Rider und die Anwendung wurde ursprünglich in VS erstellt. Vielen Dank, dass Sie dies hier eingestellt haben.
Yatin
17

Die DLL, nach der Sie suchen, enthält diesen Namespace

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Beachten Sie, dass Unit-Tests in Visual Studio Express nicht verwendet werden können .

Joachim Isaksson
quelle
3
Würden Sie mir bitte einen Download-Link geben?
Amit Pal
@AmitPal Welche Edition von Visual Studio haben Sie? Es sollte in den meisten Ausgaben enthalten sein.
Joachim Isaksson
Visual Studio 2010 und .net 4.0
Amit Pal
@AmitPal Siehe meine Antwort auf diese Frage für den DLL-Pfad. Es muss da sein.
Agent007
5
@AmitPal Visual Studio 2010 Express verfügt nicht über diese DLL und es kann nicht hinzugefügt werden , damit Unit-Tests funktionieren (Sie müssen ein Testtool eines Drittanbieters wie nUnit verwenden). Wenn Sie Professional oder höher verwenden, lesen Sie die Antwort von agent007.
Joachim Isaksson
10

Es gibt auch ein schönes Nuget-Paket . Die DLL wird in Ihren Paketordner gezogen. Sie müssen den Verweis manuell zur DLL hinzufügen.

HINWEIS : Dieses Paket ist kein offizielles Microsoft-Paket.

Rashack
quelle
1
Das Nuget-Paket konnte in Project für .net 4.0 mit VS2013 nicht installiert werden. Die einzige Option für die Version war 11.0.50727.1.
WebComer
1
Kann jemand sagen, ob dieses Nuget wirklich Microsoft gehört? Es scheint ein persönliches Nuget zu sein, das Microsoft-Assemblies enthält
BozoJoe
9

Um dieses Problem zu beheben, musste ich Folgendes tun:

  1. Starten Sie das Visual Studio-Installationsprogramm mit Administratorrechten
  2. Wenn Sie dazu aufgefordert werden, Updates für Visual Studio zu installieren, tun Sie dies, bevor Sie fortfahren
  3. Wenn Sie dazu aufgefordert werden, klicken Sie auf die Schaltfläche, um die vorhandene Installation zu ändern
  4. Klicken Sie oben auf die Registerkarte / Überschrift "Einzelne Komponenten"
  5. Scrollen Sie zum Abschnitt "Debuggen und Testen"
  6. Aktivieren Sie das Kontrollkästchen neben "Webleistungs- und Lasttest-Tools".
  7. Klicken Sie auf die Schaltfläche Ändern in der unteren rechten Ecke des Dialogfelds, um die fehlenden DLLs zu installieren

Sobald die DLLs installiert sind, können Sie mit der von Agent007 in seiner Antwort angegebenen Methode Verweise auf sie hinzufügen.

S. Hooley
quelle
1
"Tools für Webleistung und Lasttests" wird nicht mehr angezeigt. Was würden Sie empfehlen, wählen wir stattdessen?
Shafiq Jetha
@ShafiqJetha, ich sehe immer noch die Option für "Webleistungs- und Lasttest-Tools". Ich verwende Visual Studio Enterprise 2017 - 15.8.9. Welche Version verwenden Sie? Es sieht so aus, als hätte Microsoft die Benutzeroberfläche des Installationsprogramms geringfügig geändert, seit ich den obigen Beitrag geschrieben habe. Wenn ich das Visual Studio-Installationsprogramm starte (als Administrator), klicke ich auf die Schaltfläche "Mehr" rechts neben den Schaltflächen "Aktualisieren" und "Starten", wähle "Ändern" aus und fahre dann mit Schritt 4 in der Liste fort mein Beitrag oben.
S. Hooley
Ich verwende das Build Tools-Installationsprogramm für Visual Studio 2017, damit dies möglicherweise erklärt wird.
Shafiq Jetha
@ShafiqJetha was hast du letztendlich benutzt?
Vin Shahrdar
@ VinShahrdar Ich kann mich ehrlich gesagt nicht erinnern; das ist so lange her. Ich denke, wir haben das Problem umgangen, indem wir möglicherweise das NuGet-Paket eines anderen verwendet haben, um die erforderlichen DLLs zu erhalten. Oder vielleicht haben wir die DLL im Repo gespeichert. Ich kann mich ehrlich gesagt nicht erinnern, sorry.
Shafiq Jetha
8

Wenn Sie die Visual Studio 2017-Community verwenden, lautet der Speicherort:

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

Die gewünschte DLL ist da: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Anscheinend befindet es sich im C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Verzeichnis für Visual Studio 2010 Professional, aber beachten Sie, dass die10.0 Änderung entsprechend dem Veröffentlichungsjahr ändert, dh VS 2013 war Version 12.0, VS 2015 war Version 14.0, VS 2017 ist 15.0. (VS Express wird nicht unterstützt und erfordert die Installation des NUnit NuGet-Pakets stattdessen über den NuGet Package Manager.)

Gehen Sie zu Referenzen , klicken Sie mit der rechten Maustaste, wählen Sie Referenz hinzufügen, Durchsuchen . Navigieren Sie zum Pfad und doppelklicken Sie auf die Datei.

Dann benötigen Sie eine usingErklärung oben in Ihrer Unit Test-Klasse:

using Microsoft.VisualStudio.TestTools.UnitTesting;

vapcguy
quelle
1
Unter Durchsuchen versteht man die Schaltfläche Durchsuchen unten und nicht den Ordner Durchsuchen links.
Alan Baljeu
@ AlanBaljeu Sehr wahr.
Vapcguy
0

Dh für Visual Studio 2013 würde ich auf diese Assembly verweisen:

Microsoft.VisualStudio.Shell.14.0.dll

Sie finden es dh hier:

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

und vergessen Sie nicht zu implementieren:

Verwenden von Microsoft.VisualStudio;

creg
quelle
0

Wenn Sie hierher gekommen sind, weil Ihr VSTS-Erstellungsjob mit der obigen Fehlermeldung fehlschlägt. Stellen Sie sicher, dass Sie mindestens Version 2. * der Nuget-Task verwenden, um Ihre Pakete wiederherzustellen.

Jim Wolff
quelle
Wissen Sie, warum Version 2. * benötigt wird? Wir sind auf TFS 2017 und stoßen auf diesen Fehler.
DylanSp
Ich habe gerade den Code von QA zu UAT gehoben und teste jetzt die SAME-Unittests auf dem SAME-Computer im selben übergeordneten Ordner in praktisch derselben Lösung. aber nooo .. Kein Unittest plötzlich gefunden .... Ich bin so müde von Microsofts Path Hölle, die sie in den späteren Jahren erstellt haben.
Christian
0

Ich habe dieses Problem, nachdem ich ein Projekt verschoben und seinen Paketordner gelöscht habe. Nuget wurde gezeigt, dass MSTest.TestAdapter und MSTest.TestFramework v 1.3.2 installiert wurden. Das Update schien darin zu bestehen, VS als Administrator zu öffnen und zu erstellen. Danach konnte ich erneut öffnen und erstellen, ohne über Administratorrechte zu verfügen.

Kirsten Gier
quelle
0

Fügen Sie einen Verweis auf das NuGet-Paket "Microsoft.VisualStudio.QualityTools.UnitTestFramework" hinzu, und es sollte erfolgreich erstellt werden.

Sanjeev Kumar
quelle
Ich bin sicher, dass die anderen sieben Einträge, die genau diese Lösung vorschlagen, die Leser nicht erreichen. Wiederholung ist noch besser, wenn Sie es wiederholen.
Christian
0

In Visual Studio 2019, in dem ein .net Core 3.1-Projekt ausgeführt wird, müssen Sie das neueste Testframework installieren, um den Fehler zu beheben.

Der einfachste Weg, dies zu erreichen, besteht darin, den Browser über eine [Test] -Anmerkung (rot unterstrichen) zu bewegen und vorgeschlagene Korrekturen auszuwählen. Das eine, was benötigt wird, ist "das neueste Test-Framework zu suchen und zu installieren".

Stanley Tonkonogy
quelle
-4

Verweisen Sie einfach auf diese URL und laden Sie die erforderlichen DLL-Dateien an diesem Speicherort herunter und speichern Sie sie:

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

URL ist: https://github.com/NN---/vssdk2013/find/master

Veer
quelle