"Microsoft.VisualStudio.TestTools.UnitTesting" eksik dll nerede bulunur?


131

C # görsel stüdyo projemde aşağıdaki hatayı alıyorum:

'VisualStudio' tür veya ad alanı adı 'Microsoft' ad alanında mevcut değil (bir derleme başvurusu eksik mi?)

Ayrıca microsoft.dll dosyasını bulmaya çalıştım ama herhangi bir referans alamadım. Yanlış DLL mi arıyorsunuz?

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
Montaj referansını ekledikten sonra hala aynı hatayı alıyor musunuz Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
Joachim Isaksson

Yanıtlar:


144

Referans eklemelisiniz

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

"C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \" dizininde bulunabilir (VS2010 professional veya üstü için; .NET Framework 4.0).

veya projenize sağ tıklayın ve seçin: Referans Ekle ...> .NET: veya Referans Ekle ...> .NET'i tıklayın:


2
Bu neden kabul edildi? Yorumlar yardımcı olmadıklarını gösteriyor. Birisi detaylandırabilir mi?
sirdank

@sirdank Bir cevabı OP'den başka kimsenin çözüm olarak kabul edemeyeceğinin farkındasın, değil mi? OP için yararlı olmasaydı, kabul etmezdi.
Agent007

4
@ Agent007 Biliyorum. Bununla birlikte, OP, işe yaramadığını belirten bir yorum bırakarak (en azından bana) daha fazla şey yapılması gerektiğini gösteriyor. Başka ne yapılması gerektiğini anladıktan sonra, bunu açıklayan bir yorum bırakmamak faydasız görünüyor.
sirdank

6
Sadece bu sorunu yaşadım ve bu cevap çözümdü. Durumun neden böyle olduğuna dair herhangi bir fikri olan var mı? Ad alanı Microsoft.VisualStudio.TestTools.UnitTestingve derleme neden Microsoft.VisualStudio.QualityTools.UnitTestFramework? Neden ikisine de aynı isim vermediler?
Alan Thomas

Tökezlememin bir yolu, Team Build kurulduğunda versiyona bağlı olarak farklı bir klasörde görünmesiydi. VS 2010 için Microsoft Visual Studio 10.0, VS 2013 için Microsoft Visual Studio 12.0, VS 2015 için Microsoft Visual Studio 14.0.
Ryan Gates

67

Bunun eski olduğunu biliyorum, Google aramamda ortaya çıkan şey bu. NuGet'te bu paketlere başvurmam gerekiyordu:

görüntü açıklamasını buraya girin


Benim durumumda (VS2019), bu paketleri yükseltmem gerekiyordu ve ardından sorunu çözdüm. Şerefe!
RJFalconer

Bu benim için mükemmel çalışıyor. Rider kullanıyorum ve uygulama orijinal olarak VS'de oluşturuldu. Bunu buraya koyduğunuz için teşekkürler.
Yatin

17

Bu ad alanını içeren aradığınız DLL

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Birim testinin Visual Studio Express'te kullanılamayacağını unutmayın .


3
Lütfen bana indirme linki verir misiniz?
Amit Pal

@AmitPal Visual Studio'nun hangi sürümüne sahipsiniz? Çoğu baskıya dahil edilmelidir.
Joachim Isaksson

visual studio 2010 ve .net 4.0
Amit Pal

@AmitPal DLL yolu için bu soruya cevabımı görün. Orada olmalı.
Agent007

5
@AmitPal Visual Studio 2010 Express bu DLL'ye sahip değildir ve birim testinin çalışması için eklenemez (nUnit gibi bir üçüncü taraf test aracı kullanmanız gerekir) Eğer profesyonel veya üstü kullanıyorsanız, agent007'nin cevabına bakın.
Joachim Isaksson

10

Ayrıca güzel bir nuget paketi de var . Dll'yi paketler klasörünüze çekecektir. Referansı dll'ye manuel olarak eklemeniz gerekecektir.

NOT : Bu paket resmi bir Microsoft paketi değildir.


1
NuGet paketi, VS2013 ile .net 4.0 projesine yüklenemedi. Sürüm için tek seçenek 11.0.50727.1 idi.
WebComer

1
Bu nuget'in gerçekten Microsoft'a ait olup olmadığını kimse söyleyebilir mi? Microsoft asemblies içeren kişisel bir külçe gibi görünüyor
BozoJoe

9

Bu sorunu çözmek için aşağıdakileri yapmam gerekiyordu:

  1. Visual Studio Installer'ı yönetici ayrıcalıklarıyla başlatın
  2. Visual Studio güncellemelerini yüklemenizi isterse, devam etmeden önce bunu yapın
  3. İstendiğinde, mevcut kurulumu Değiştirmek için düğmeye tıklayın
  4. Üst kısımdaki "Bağımsız bileşenler" sekmesini / başlığını tıklayın
  5. "Hata ayıklama ve test etme" bölümüne gidin
  6. "Web performansı ve yükleme testi araçları" nın yanındaki kutuyu işaretleyin
  7. Eksik DLL'leri yüklemek için iletişim kutusunun sağ alt köşesindeki Değiştir düğmesine tıklayın.

DLL'ler yüklendikten sonra, Agent007'nin yanıtında belirttiği yöntemi kullanarak bunlara referanslar ekleyebilirsiniz.


1
"Web performansı ve yük testi araçları" artık görünmüyor. Bunun yerine neyi seçmemizi önerirsiniz?
Shafiq Jetha

@ShafiqJetha, "Web performansı ve yük testi araçları" seçeneğini hala görüyorum. Visual Studio Enterprise 2017 - 15.8.9 kullanıyorum. Hangi sürümü kullanıyorsunuz? Görünüşe göre Microsoft, yukarıdaki yazıyı yazdığımdan beri yükleyicinin arayüzünü biraz değiştirmiş. Visual Studio Installer'ı başlattığımda (Yönetici olarak çalıştırdığımda), "Güncelle" ve "Başlat" düğmelerinin sağındaki "Daha Fazla" düğmesine tıklıyorum, sonra "Değiştir" i seçiyorum, ardından listedeki 4. adımla devam ediyorum. yukarıdaki yazım.
S. Hooley

Visual Studio 2017 için Derleme Araçları yükleyicisini kullanıyorum, bu onu açıklayabilir.
Shafiq Jetha

@ShafiqJetha ne kullandın?
Vin Shahrdar

@VinShahrdar Gerçekten hatırlayamıyorum; bu çok uzun zaman önceydi. Sanırım gerekli DLL'leri almak için başka birinin NuGet paketini kullanarak sorunu çözdük. Ya da belki DLL'yi depoya kaydettik. Gerçekten hatırlayamıyorum, üzgünüm.
Shafiq Jetha

8

Visual Studio 2017 Community kullanıyorsanız konum şudur:

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

İstediğiniz DLL orada: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Görünüşe göre, C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Visual Studio 2010 Professional sürümünün dizininde yer alıyor , ancak 10.0yayın yılına karşılık gelecek şekilde değişeceğini unutmayın , yani VS 2013 sürüm 12.0, VS 2015 sürüm 14.0, VS 2017 sürüm 15.0. (VS Express desteklenmez ve bunun yerine NUnit NuGet paketinin NuGet Paket Yöneticisi aracılığıyla yüklenmesini gerektirir.)

Referanslara gidin , sağ tıklayın, Referans Ekle, Gözat'ı seçin . Yola gidin, ardından dosyayı çift tıklayın.

Ardından, usingUnit Test sınıfınızın en üstünde bir ifadeye ihtiyacınız var :

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
Göz atmakla, soldaki Göz At klasörü değil, alttaki Gözat düğmesi anlamına gelir.
Alan Baljeu

@AlanBaljeu Çok doğru.
vapcguy

0

Yani Visual Studio 2013 için bu derlemeye başvururum:

Microsoft.VisualStudio.Shell.14.0.dll

Yani burada bulabilirsiniz:

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

ve uygulamayı unutmayın:

Microsoft.VisualStudio kullanarak;


0

Buraya VSTS oluşturma işiniz yukarıdaki hata mesajıyla başarısız olduğu için geldiyseniz. Paketlerinizi geri yüklemek için nuget görevinin en az 2. * sürümünü kullandığınızdan emin olun.


2. * sürümünün neden gerekli olduğunu biliyor musunuz? TFS 2017'deyiz ve bu hatayla karşılaşıyoruz.
DylanSp

Kodu QA'dan UAT'ye yükselttim ve şimdi aynı çözümde aynı Ana klasörde SAME bilgisayarda SAME birim testlerini test ediyorum. ama nooo .. Aniden hiçbir unittest bulunamadı .... Sonraki yıllarda yarattıkları Microsofts Path cehenneminden o kadar bıktım ki.
Christian

0

Bu sorunu bir projeyi taşıdıktan ve paketler klasörünü sildikten sonra yaşadım. Nuget, MSTest.TestAdapter ve MSTest.TestFramework v 1.3.2'nin kurulu olduğunu gösterdi. Düzeltme, VS'yi yönetici olarak açmak ve bundan sonra yönetici ayrıcalığına sahip olmadan yeniden açıp inşa edebilmek gibi görünüyordu.


0

'Microsoft.VisualStudio.QualityTools.UnitTestFramework "NuGet paketine bir başvuru ekleyin ve başarıyla oluşturması gerekir.


Eminim bu kesin çözümü öneren diğer yedi giriş okuyuculara ulaşmamaktadır. Tekrarladığınızda tekrar etmek daha da iyidir.
Christian

0

.Net çekirdek 3.1 projesi çalıştıran Visual Studio 2019 ile, hatayı çözmek için en son test çerçevesini yüklemeniz gerekecektir.

Bunu başarmanın en kolay yolu, tarayıcıyı bir [Test] ek açıklamasının (kırmızıyla altı çizili) üzerine getirip önerilen düzeltmeleri seçmektir. İhtiyaç duyulan şey "en son test çerçevesini aramak ve kurmaktır."


-4

Bu URL'ye başvurmanız ve gerekli dll dosyalarını bu konumda indirip kaydetmeniz yeterlidir:

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

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.