Де знайти “Microsoft.VisualStudio.TestTools.UnitTesting” відсутній dll?


131

У моєму проекті візуальної студії C # з’являється така помилка:

Ім'я типу або простору імен "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?
Йоахім Ісакссон

Відповіді:


144

Ви повинні додати посилання на

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Його можна знайти в каталозі "C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \" (для VS2010 professional або вище; .NET Framework 4.0).

або клацніть правою кнопкою миші на вашому проекті та виберіть: Додати довідку ...> .NET: або натисніть кнопку Додати довідку ...> .NET:


2
Чому це було прийнято? Зауваження, схоже, вказують на те, що це було не корисно. Може хтось детальніше розробив?
sirdank

@sirdank Ви розумієте, що ніхто, крім ОП, не може прийняти відповідь як рішення, чи не так? Якби це не було корисним для ОП, він би його не прийняв.
Агент007

4
@ Agent007 Я знаю. Однак ОП, залишаючи коментар, вказуючи на те, що він не спрацював, пропонує (мені щонайменше), що потрібно зробити щось більше. Після того, як з'ясувати, що ще потрібно зробити, не залишаючи коментар, що описує таке, видається непосильним.
sirdank

6
Просто було це питання, і ця відповідь була вирішенням. Хтось має розуміння, чому це так? Чому простір імен Microsoft.VisualStudio.TestTools.UnitTestingі збірка Microsoft.VisualStudio.QualityTools.UnitTestFramework? Чому вони не могли назвати їх обох однаково?
Алан Томас

Один із способів, який я отримав, - це те, що, коли Team Build будує, він виглядатиме в іншій папці залежно від версії. Microsoft Visual Studio 10.0 для VS 2010, Microsoft Visual Studio 12.0 для VS 2013, Microsoft Visual Studio 14.0 для VS 2015.
Райан Гейтс

67

Я знаю, що це по-старому, ось що з’явилося в моєму пошуку Google. Мені потрібно було посилатись на ці пакунки на NuGet:

введіть тут опис зображення


У моєму випадку (VS2019) мені потрібно було оновити ці пакети, після чого воно вирішило проблему. Ура!
RJFalconer

Це прекрасно працює для мене. Я використовую Rider, і додаток спочатку був побудований у VS. Дякую, що ви поставили це тут.
Ятин

17

DLL, який ви шукаєте, містить цей простір імен

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Зверніть увагу, що тестування одиниць не можна використовувати в Visual Studio Express .


3
Надішліть, будь ласка, посилання для завантаження?
Аміт Пал

@AmitPal Яке видання Visual Studio у вас є? Його слід включити до більшості видань.
Йоахім Ісакссон

візуальна студія 2010 та .net 4.0
Amit Pal

@AmitPal Дивіться мою відповідь на це питання щодо шляху DLL. Це повинно бути там.
Agent007

5
@AmitPal Visual Studio 2010 Express не має цієї DLL, і вона не може бути додана для тестування одиниць роботи (вам доведеться використовувати сторонній інструмент тестування, наприклад, nUnit).
Йоахім Ісакссон

10

Також є приємний пакунок від нута . Він потягне dll до папки ваших пакетів. Вам потрібно буде додати посилання на dll вручну.

ПРИМІТКА . Цей пакет не є офіційним пакетом Microsoft.


1
Не вдалося встановити пакет nuget у проекті для .net 4.0 з VS2013. Єдиний варіант для версії був 11.0.50727.1.
WebComer

1
Чи може хтось сказати, чи справді ця нотка справді належить Microsoft? Здається, це особистий нутет, що містить асемблери Microsoft
BozoJoe

9

Щоб вирішити цю проблему, мені довелося виконати наступне:

  1. Запустіть інсталятор Visual Studio з адміністративними привілеями
  2. Якщо це запропонує встановити оновлення Visual Studio, зробіть це перед тим, як продовжувати
  3. Коли з'явиться запит, натисніть кнопку, щоб змінити існуючу установку
  4. Клацніть на вкладці / заголовку "Окремі компоненти" вгорі
  5. Прокрутіть униз до розділу "Налагодження та тестування"
  6. Поставте прапорець "Інструменти для перевірки продуктивності та завантаження веб-сторінок"
  7. Натисніть кнопку Змінити в правому нижньому куті діалогового вікна, щоб встановити відсутні DLL-файли

Після встановлення DLL-файлів ви можете додати посилання на них за допомогою методу, який Agent007 вказав у своїй відповіді.


1
"Інструменти перевірки продуктивності та завантаження веб-сторінок" більше не з'являються. Що б ви порадили вибрати замість цього?
Шафік Джета

@ShafiqJetha, я все ще бачу опцію "Інструменти веб-продуктивності та тестування завантаження". Я використовую Visual Studio Enterprise 2017 - 15.8.9. Яку версію ви використовуєте? Схоже, Microsoft трохи змінила інтерфейс програми інсталятора, оскільки я написав публікацію вище. Коли я запускаю інсталятор Visual Studio (запускаю його як адміністратор), натискаю кнопку "Додатково" праворуч від кнопок "Оновити" та "Запустити", потім виберіть "Змінити", а потім відновіть крок 4 у списку в мій пост вище.
С. Гулі

Я використовую інсталятор Build Tools для Visual Studio 2017, щоб це могло пояснити.
Шафік Джета

@ShafiqJetha, що ти в кінцевому підсумку використав?
Він Шахдар

@VinShahrdar Я, чесно кажучи, не пам'ятаю; це було так давно. Я думаю, що ми вирішили проблему, можливо, використовуючи чужий пакет NuGet, щоб отримати потрібні DLL-файли. А може, ми зберегли DLL до репо. Я, чесно кажучи, не можу згадати, вибачте.
Шафік Джета

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 не підтримується і вимагає встановити пакет NUnit NuGet через Менеджер пакетів NuGet.)

Ви переходите до Довідки , клацніть правою кнопкою миші, виберіть Додати довідку, Огляд . Перейдіть до контуру, а потім двічі клацніть файл.

Тоді вам потрібно usingтвердження вгорі вашого класу Unit Test:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
Під переглядом це означає кнопку Огляд внизу, а не папку Огляд зліва.
Алан Балуу

@AlanBaljeu Дуже правда.
vapcguy

0

Тобто для Visual Studio 2013 я б посилався на цю збірку:

Microsoft.VisualStudio.Shell.14.0.dll

Ви можете знайти його, наприклад, тут:

C: \ Програмні файли (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Розширення \ BugAid Software \ BugAid \ 1.0

і не забудьте реалізувати:

за допомогою Microsoft.VisualStudio;


0

Якщо ви приїхали сюди через те, що ваша робота зі створення VSTS не відповідає вищевказаному повідомленню про помилку. Переконайтеся, що ви використовуєте принаймні версію 2. * цільового завдання для відновлення ваших пакетів.


Чи знаєте ви, чому потрібна версія 2. *? Ми в TFS 2017 і стикаємося з цією помилкою.
DylanSp

Я щойно підняв код з QA на UAT, і зараз я тестую єдині тести SAME на комп'ютері SAME, у тій же папці Parent практично в тому самому рішенні. але nooo .. Раптом не знайдено одиничного тесту .... Я так втомився від пекла Microsofts Path, який вони створили в наступні роки.
Крістіан

0

У мене ця проблема виникла після переміщення проекту та видалення пакета пакунків. Nuget показав, що встановлені MSTest.TestAdapter і MSTest.TestFramework v 1.3.2. Виправленням здавалося, що я відкрив VS як адміністратор та збірку. Після цього я зміг відкрити та створити, не маючи права доступу до адміністратора.


0

Додайте посилання на пакет Microsoft.VisualStudio.QualityTools.UnitTestFramework "NuGet", і він повинен успішно його скласти.


Я впевнений, що інші сім записів, що пропонують це точне рішення, не потрапляють до читачів. Повторення ще краще, коли ви повторите це.
Крістіан

0

Якщо Visual Studio 2019 запускає проект .net core 3.1, вам потрібно буде встановити останню тестову рамку для усунення помилки.

Найпростіший спосіб досягти цього - навести курсор на примітку [Test] (тест) (підкреслена червоним кольором) та вибрати запропоновані виправлення. Потрібно - "знайти та встановити останню тестову рамку".


-4

Просто перейдіть за цією URL-адресою та завантажте та збережіть потрібні файли dll @ це місце:

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

URL-адреса така: https://github.com/NN---/vssdk2013/find/master

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.