Di mana menemukan “Microsoft.VisualStudio.TestTools.UnitTesting” hilang dll?


131

Saya mendapatkan kesalahan berikut dalam proyek C # visual studio saya:

Tipe atau nama namespace 'VisualStudio' tidak ada di namespace 'Microsoft' (apakah Anda kehilangan referensi perakitan?)

Saya juga mencoba mencari file microsoft.dll tetapi tidak bisa mendapatkan referensi. Apakah saya mencari DLL yang salah?

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
Apakah Anda masih mendapatkan kesalahan yang sama persis setelah menambahkan referensi perakitan Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
Joachim Isaksson

Jawaban:


144

Anda harus menambahkan referensi

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Itu dapat ditemukan di "C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \" direktori (untuk VS2010 profesional atau lebih tinggi; .NET Framework 4.0).

atau klik kanan pada proyek Anda dan pilih: Tambah Referensi ...> .NET: atau klik Tambah Referensi ...> .NET:


2
Mengapa ini diterima? Komentar itu tampaknya mengindikasikan bahwa itu tidak membantu. Bisakah seseorang menguraikan?
sirdank

@ sirdank Anda menyadari bahwa tidak seorang pun selain OP yang dapat menerima jawaban sebagai solusinya, bukan? Jika itu tidak membantu OP, dia tidak akan menerimanya.
Agent007

4
@ Agent007 saya tahu. Namun, OP meninggalkan komentar yang menunjukkan itu tidak berhasil menyarankan (setidaknya bagi saya) bahwa sesuatu yang lebih perlu dilakukan. Setelah mencari tahu apa lagi yang perlu dilakukan, tidak meninggalkan komentar yang menggambarkan hal itu tampaknya tidak membantu.
sirdank

6
Baru saja mengalami masalah ini, dan jawaban ini adalah solusinya. Adakah yang tahu mengapa hal ini terjadi? Mengapa namespace Microsoft.VisualStudio.TestTools.UnitTestingdan assembly itu Microsoft.VisualStudio.QualityTools.UnitTestFramework? Mengapa mereka tidak bisa menyebut keduanya sama saja?
Alan Thomas

Salah satu cara saya tersandung adalah bahwa ketika Build Tim membangun itu akan terlihat di folder yang berbeda tergantung pada versinya. Microsoft Visual Studio 10.0 untuk VS 2010, Microsoft Visual Studio 12.0 untuk VS 2013, Microsoft Visual Studio 14.0 untuk VS 2015.
Ryan Gates

67

Saya tahu ini sudah tua, inilah yang muncul dalam pencarian Google saya. Saya perlu merujuk paket-paket ini di NuGet:

masukkan deskripsi gambar di sini


Dalam kasus saya (VS2019), saya perlu memutakhirkan paket-paket ini kemudian memperbaiki masalahnya. Bersulang!
RJFalconer

Ini bekerja dengan baik untuk saya. Saya menggunakan Rider dan aplikasi ini awalnya dibangun di VS. Terima kasih telah meletakkan ini di sini.
Yatin

17

DLL yang Anda cari itu mengandung namespace itu

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Perhatikan bahwa pengujian unit tidak dapat digunakan dalam Visual Studio Express .


3
Tolong beri saya tautan unduhan?
Amit Pal

@AmitPal Apa edisi Visual Studio yang Anda miliki? Itu harus disertakan dengan sebagian besar edisi.
Joachim Isaksson

visual studio 2010 dan .net 4.0
Amit Pal

@AmitPal Lihat jawaban saya untuk pertanyaan ini untuk jalur DLL. Itu pasti ada di sana.
Agen007

5
@AmitPal Visual Studio 2010 Express tidak memiliki DLL itu dan itu tidak dapat ditambahkan untuk membuat unit testing bekerja (Anda harus menggunakan alat pengujian pihak ketiga seperti nUnit) Jika Anda menggunakan profesional atau ke atas, lihat jawaban agent007.
Joachim Isaksson

10

Ada juga paket nuget yang bagus . Ini akan menarik dll ke folder paket Anda. Anda perlu menambahkan referensi ke dll secara manual.

CATATAN : Paket ini bukan paket Microsoft resmi.


1
Paket nuget gagal diinstal dalam proyek untuk .net 4.0 dengan VS2013. Satu-satunya opsi untuk versi adalah 11.0.50727.1.
WebComer

1
adakah yang bisa mengatakan jika nuget ini benar-benar milik Microsoft? Tampaknya menjadi nuget pribadi yang mengandung Microsoft asemblies
BozoJoe

9

Untuk mengatasi masalah ini, saya harus melakukan yang berikut:

  1. Luncurkan Penginstal Visual Studio dengan hak administratif
  2. Jika diminta untuk menginstal pembaruan ke Visual Studio, lakukan sebelum melanjutkan
  3. Ketika diminta, klik tombol untuk Memodifikasi instalasi yang ada
  4. Klik pada tab / header "Komponen individual" di bagian atas
  5. Gulir ke bawah ke bagian "Debugging dan pengujian"
  6. Centang kotak di sebelah "Alat uji kinerja dan kinerja web"
  7. Klik tombol Modify di sudut kanan bawah dialog untuk menginstal DLL yang hilang

Setelah DLL diinstal, Anda dapat menambahkan referensi ke mereka menggunakan metode yang ditunjukkan Agent007 dalam jawabannya.


1
"Alat kinerja web dan uji beban" tidak lagi muncul. Apa yang akan Anda rekomendasikan sebagai gantinya kami pilih?
Shafiq Jetha

@ ShafiqJetha, saya masih melihat opsi untuk "Kinerja web dan alat pengujian beban". Saya menggunakan Visual Studio Enterprise 2017 - 15.8.9. Versi apa yang Anda gunakan? Sepertinya Microsoft telah sedikit mengubah antarmuka penginstal sejak saya menulis posting di atas. Ketika saya meluncurkan Visual Studio Installer (menjalankannya sebagai Administrator), saya klik tombol "Lainnya" di sebelah kanan tombol "Perbarui" dan "Luncurkan", lalu pilih "Ubah", kemudian lanjutkan dengan langkah 4 dalam daftar di posting saya di atas.
S. Hooley

Saya menggunakan penginstal Build Tools untuk Visual Studio 2017, jadi itu mungkin menjelaskannya.
Shafiq Jetha

@ ShafiqJetha apa yang akhirnya Anda gunakan?
Vin Shahrdar

@ VinShahrdar, sejujurnya aku tidak ingat; ini sudah lama sekali. Saya pikir kami mengatasi masalah mungkin dengan menggunakan paket NuGet orang lain untuk mendapatkan DLL yang diperlukan. Atau mungkin kita menyimpan DLL ke repo. Sejujurnya aku tidak ingat, maaf.
Shafiq Jetha

8

Jika Anda menggunakan Komunitas Visual Studio 2017, lokasinya adalah:

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

DLL yang Anda inginkan ada di sana: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Tampaknya itu terletak di C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\direktori untuk versi Visual Studio 2010 Professional, tetapi perhatikan bahwa 10.0akan berubah sesuai dengan tahun rilis, yaitu VS 2013 adalah versi 12.0, VS 2015 adalah versi 14.0, VS 2017 adalah 15.0. (VS Express tidak didukung dan perlu menginstal paket NUnit NuGet, melalui Pengelola Paket NuGet, sebagai gantinya.)

Anda pergi ke Referensi , klik kanan, pilih Tambahkan Referensi, Jelajahi . Arahkan ke jalan, lalu klik dua kali file.

Kemudian, Anda memerlukan usingpernyataan di bagian atas kelas Tes Unit Anda:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
Dengan menelusuri, itu berarti tombol Browse di bagian bawah, bukan folder Browse di sebelah kiri.
Alan Baljeu

@AlanBaljeu Sangat benar.
vapcguy

0

Yaitu untuk Visual Studio 2013 saya akan referensi perakitan ini:

Microsoft.VisualStudio.Shell.14.0.dll

Anda dapat menemukannya yaitu di sini:

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

dan jangan lupa untuk mengimplementasikan:

menggunakan Microsoft.VisualStudio;


0

Jika Anda datang ke sini karena pekerjaan membangun VSTS Anda gagal dengan pesan kesalahan di atas. Pastikan Anda menggunakan setidaknya versi 2. * dari tugas nuget untuk memulihkan paket Anda.


Apakah Anda tahu mengapa versi 2. * diperlukan? Kami berada di TFS 2017 dan mengalami kesalahan ini.
DylanSp

Saya baru saja mengangkat kode dari QA ke UAT dan saya sekarang sedang menguji unittests SAMA, pada komputer SAMA, di folder Induk yang sama dalam solusi praktis yang sama. tapi nooo .. Tidak ada unittest yang tiba-tiba ditemukan .... Saya sangat bosan dengan Microsoft Path yang mereka buat di tahun-tahun berikutnya.
Christian

0

Saya mendapat masalah ini setelah memindahkan proyek dan menghapus folder paket-paketnya. Nuget menunjukkan bahwa MSTest.TestAdapter dan MSTest.TestFramework v 1.3.2 diinstal. Perbaikannya tampaknya membuka VS sebagai administrator dan membangun Setelah itu saya bisa membuka kembali dan membangun tanpa admin hak istimewa.


0

Tambahkan referensi ke 'Microsoft.VisualStudio.QualityTools.UnitTestFramework "Paket NuGet dan harus berhasil membangunnya.


Saya yakin tujuh entri lainnya menyarankan solusi yang tepat ini, tidak sampai ke pembaca. Pengulangan bahkan lebih baik ketika Anda mengulanginya.
Christian

0

Dengan Visual Studio 2019, menjalankan proyek .net core 3.1, Anda harus menginstal kerangka uji terbaru untuk menyelesaikan kesalahan.

Cara termudah untuk mencapai ini adalah dengan mengarahkan browser ke anotasi [Tes] (digarisbawahi dalam warna merah) dan pilih perbaikan yang disarankan. Yang diperlukan adalah "mencari dan menginstal kerangka kerja pengujian terbaru."


-4

Cukup Rujuk URL ini dan unduh serta simpan file dll yang diperlukan @ lokasi ini:

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

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.