Gdzie znaleźć brakujący plik DLL „Microsoft.VisualStudio.TestTools.UnitTesting”?


137

Otrzymuję następujący błąd w moim projekcie C # Visual Studio:

Nazwa typu lub przestrzeni nazw „VisualStudio” nie istnieje w przestrzeni nazw „Microsoft” (czy brakuje odwołania do zestawu?)

Próbowałem również znaleźć plik microsoft.dll, ale nie mogłem znaleźć żadnego odniesienia. Czy szukam niewłaściwej biblioteki 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
Czy nadal otrzymujesz dokładnie ten sam błąd po dodaniu odwołania do zestawu do Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
Joachim Isaksson

Odpowiedzi:


148

Musisz dodać odniesienie do

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Można go znaleźć w katalogu „C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \” (dla VS2010 professional lub nowszego; .NET Framework 4.0).

lub kliknij prawym przyciskiem myszy swój projekt i wybierz: Dodaj odniesienie ...> .NET: lub kliknij Dodaj odniesienie ...> .NET:


2
Dlaczego zostało to zaakceptowane? Komentarze wydają się wskazywać, że nie było to pomocne. Czy ktoś mógłby coś rozwinąć?
sirdank

@sirdank Zdajesz sobie sprawę, że nikt oprócz OP nie może zaakceptować odpowiedzi jako rozwiązania, prawda? Gdyby to nie było pomocne dla PO, nie zaakceptowałby tego.
Agent007

4
@ Agent007 Wiem. Jednak OP pozostawiając komentarz wskazujący, że nie działa, sugeruje (przynajmniej dla mnie), że trzeba zrobić coś więcej. Po ustaleniu, co jeszcze należało zrobić, nie pozostawianie komentarza opisującego to wydaje się nieprzydatne.
sirdank

6
Właśnie miałem ten problem, a ta odpowiedź była rozwiązaniem. Czy ktoś ma wgląd w to, dlaczego tak się dzieje? Dlaczego przestrzeń nazw Microsoft.VisualStudio.TestTools.UnitTestingi zestaw to Microsoft.VisualStudio.QualityTools.UnitTestFramework? Dlaczego nie mogli nazwać ich obu tym samym?
Alan Thomas

Jednym ze sposobów, w jakie się potknąłem, było to, że kompilacja zespołu będzie wyglądać w innym folderze w zależności od wersji. Microsoft Visual Studio 10.0 dla VS 2010, Microsoft Visual Studio 12.0 dla VS 2013, Microsoft Visual Studio 14.0 dla VS 2015.
Ryan Gates

76

Wiem, że to jest stare, to właśnie pojawiło się w mojej wyszukiwarce Google. Musiałem odwołać się do tych pakietów w NuGet:

wprowadź opis obrazu tutaj


W moim przypadku (VS2019) musiałem zaktualizować te pakiety, a następnie rozwiązałem problem. Twoje zdrowie!
RJFalconer

U mnie to działa idealnie. Używam Ridera i aplikacja została pierwotnie zbudowana w VS. Dziękuję za umieszczenie tego tutaj.
Yatin

17

Biblioteka DLL, której szukasz, która zawiera tę przestrzeń nazw, to

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Należy pamiętać, że testów jednostkowych nie można używać w programie Visual Studio Express .


3
Czy mógłbyś podać mi link do pobrania?
Amit Pal

@AmitPal Jaką wersję programu Visual Studio posiadasz? Powinien być dołączony do większości wydań.
Joachim Isaksson

visual studio 2010 i .net 4.0
Amit Pal

@AmitPal Zobacz moją odpowiedź na to pytanie dla ścieżki DLL. Musi tam być.
Agent007

5
@AmitPal Visual Studio 2010 Express nie ma tej biblioteki DLL i nie można jej dodać, aby testowanie jednostkowe działało (będziesz musiał użyć narzędzia testowego innej firmy, takiego jak nUnit). Jeśli używasz wersji Professional lub wyższej, zobacz odpowiedź agenta007.
Joachim Isaksson

10

Jest też ładny pakiet nuget . Ściągnie bibliotekę dll do folderu z pakietami. Będziesz musiał ręcznie dodać odwołanie do biblioteki dll.

UWAGA : ten pakiet nie jest oficjalnym pakietem firmy Microsoft.


1
Nie udało się zainstalować pakietu NuGet w projekcie dla .NET 4.0 z VS2013. Jedyną opcją dla wersji była 11.0.50727.1.
WebComer

1
Czy ktoś może powiedzieć, czy ten nuget jest naprawdę własnością firmy Microsoft? Wygląda na to, że jest to osobisty nuget zawierający zespoły Microsoft
BozoJoe

9

Aby rozwiązać ten problem, musiałem wykonać następujące czynności:

  1. Uruchom Instalatora programu Visual Studio z uprawnieniami administratora
  2. Jeśli wyświetli się monit o zainstalowanie aktualizacji programu Visual Studio, zrób to przed kontynuowaniem
  3. Po wyświetleniu monitu kliknij przycisk Modyfikuj istniejącą instalację
  4. Kliknij zakładkę / nagłówek „Poszczególne komponenty” u góry
  5. Przewiń w dół do sekcji „Debugowanie i testowanie”
  6. Zaznacz pole obok „Narzędzia do testowania wydajności i obciążenia sieci”
  7. Kliknij przycisk Modyfikuj w prawym dolnym rogu okna dialogowego, aby zainstalować brakujące biblioteki DLL

Po zainstalowaniu bibliotek DLL można dodawać do nich odwołania, korzystając z metody wskazanej przez Agent007 w odpowiedzi.


1
„Narzędzia do testowania wydajności i obciążenia sieci” nie są już wyświetlane. Co byśmy polecili zamiast tego wybrać?
Shafiq Jetha

@ShafiqJetha, nadal widzę opcję „Narzędzia do testowania wydajności i obciążenia sieci”. Używam programu Visual Studio Enterprise 2017 - 15.8.9. Jakiej wersji używasz? Wygląda na to, że Microsoft zmienił nieco interfejs instalatora od czasu, gdy napisałem powyższy post. Gdy uruchamiam Instalatora programu Visual Studio (uruchamiam go jako administrator), klikam przycisk „Więcej” po prawej stronie przycisków „Aktualizuj” i „Uruchom”, a następnie wybieram „Modyfikuj”, a następnie wznawiam od kroku 4 na liście w mój post powyżej.
S. Hooley

Używam instalatora narzędzi kompilacji dla programu Visual Studio 2017, więc może to wyjaśnić.
Shafiq Jetha

@ShafiqJetha czego ostatecznie użyłeś?
Vin Shahrdar

@VinShahrdar Szczerze mówiąc nie pamiętam; to było tak dawno temu. Myślę, że mogliśmy obejść ten problem, używając pakietu NuGet innej osoby, aby uzyskać wymagane biblioteki DLL. A może zapisaliśmy bibliotekę DLL w repozytorium. Naprawdę nie pamiętam, przepraszam.
Shafiq Jetha

8

Jeśli używasz społeczności programu Visual Studio 2017, lokalizacja to:

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

Biblioteka DLL, której potrzebujesz, jest tam: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Najwyraźniej znajduje się w C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\katalogu wersji Visual Studio 2010 Professional, ale należy pamiętać, że 10.0zmiana będzie odpowiadać rokowi wydania, tj. VS 2013 to wersja 12.0, VS 2015 to 14.0, VS 2017 to 15.0. (VS Express nie jest obsługiwany i zamiast tego wymagałby zainstalowania pakietu NuGet NUnit za pośrednictwem Menedżera pakietów NuGet).

Idziesz do References , kliknij prawym przyciskiem myszy, wybierz Add Reference, Browse . Przejdź do ścieżki, a następnie kliknij dwukrotnie plik.

Następnie potrzebujesz usingoświadczenia u góry klasy testów jednostkowych:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
„Przeglądaj” oznacza przycisk „Przeglądaj” u dołu, a nie folder „Przeglądaj” po lewej stronie.
Alan Baljeu

@AlanBaljeu Bardzo prawdziwe.
vapcguy

0

To znaczy dla Visual Studio 2013 chciałbym odwołać się do tego zestawu:

Microsoft.VisualStudio.Shell.14.0.dll

Znajdziesz go m.in. tutaj:

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

i nie zapomnij wdrożyć:

przy użyciu Microsoft.VisualStudio;


0

Jeśli przybyłeś tutaj, ponieważ zadanie kompilacji VSTS kończy się niepowodzeniem z powyższym komunikatem o błędzie. Upewnij się, że używasz co najmniej wersji 2. * zadania NuGet, aby przywrócić pakiety.


Czy wiesz, dlaczego potrzebna jest wersja 2. *? Jesteśmy na TFS 2017 i napotykamy ten błąd.
DylanSp

Właśnie przeniosłem kod z QA do UAT i teraz testuję SAME unittesty na TYM SAMYM komputerze, w tym samym folderze nadrzędnym w praktycznie tym samym rozwiązaniu. ale nieee… Nie znaleziono nagle niezauważonych… Jestem tak zmęczony piekłem Mikrosoftów, które stworzyli w późniejszych latach.
Christian,

0

Mam ten problem po przeniesieniu projektu i usunięciu jego folderu pakietów. Nuget wykazał, że zainstalowano MSTest.TestAdapter i MSTest.TestFramework v 1.3.2. Wydawało się, że poprawką było otwarcie VS jako administrator i kompilacja. Potem mogłem ponownie otworzyć i zbudować bez uprawnień administratora.


0

Dodaj odwołanie do pakietu NuGet „Microsoft.VisualStudio.QualityTools.UnitTestFramework” i powinien pomyślnie go skompilować.


Jestem pewien, że pozostałe siedem wpisów sugerujących dokładnie to rozwiązanie nie dociera do czytelników. Powtarzanie jest jeszcze lepsze, gdy je powtarzasz.
Christian,

0

W przypadku programu Visual Studio 2019, w którym działa projekt .net core 3.1, musisz zainstalować najnowszą platformę testową, aby rozwiązać problem.

Najłatwiej to zrobić, umieszczając kursor myszy nad adnotacją [Test] (podkreśloną na czerwono) i wybierając sugerowane poprawki. Potrzebne jest „wyszukanie i zainstalowanie najnowszej platformy testowej”.


-4

Po prostu sprawdź ten adres URL i pobierz i zapisz wymagane pliki dll w tej lokalizacji:

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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.