จะหา“ Microsoft.VisualStudio.TestTools.UnitTesting” dll ที่หายไปได้ที่ไหน


131

ฉันได้รับข้อผิดพลาดต่อไปนี้ในโครงการ C # visual studio ของฉัน:

ประเภทหรือชื่อเนมสเปซ '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หรือไม่
Joachim Isaksson

คำตอบ:


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 คุณรู้หรือไม่ว่าไม่มีใครนอกจาก OP สามารถยอมรับคำตอบเป็นทางออกได้ใช่ไหม? ถ้ามันไม่เป็นประโยชน์สำหรับ OP เขาก็คงไม่ยอมรับ
Agent007

4
@ Agent007 ฉันรู้ อย่างไรก็ตาม OP ที่แสดงความคิดเห็นระบุว่ามันไม่ได้ผล (อย่างน้อยสำหรับฉัน) ว่าต้องทำอะไรมากกว่านี้ หลังจากทราบว่าต้องทำอะไรอีกบ้างการไม่แสดงความคิดเห็นที่อธิบายถึงสิ่งนั้นดูเหมือนจะไม่เป็นประโยชน์
sirdank

6
เพิ่งมีปัญหานี้และคำตอบนี้คือทางออก ใครมีข้อมูลเชิงลึกว่าทำไมถึงเป็นเช่นนี้? ทำไมเนมสเปซMicrosoft.VisualStudio.TestTools.UnitTestingและแอสเซมบลีจึงเป็นMicrosoft.VisualStudio.QualityTools.UnitTestFramework? ทำไมถึงตั้งชื่อให้เหมือนกันไม่ได้
Alan Thomas

วิธีหนึ่งที่ทำให้ฉันสะดุดคือเมื่อ Team Build สร้างมันจะมีลักษณะในโฟลเดอร์อื่นขึ้นอยู่กับเวอร์ชัน Microsoft Visual Studio 10.0 สำหรับ VS 2010, Microsoft Visual Studio 12.0 สำหรับ VS 2013, Microsoft Visual Studio 14.0 สำหรับ VS 2015
Ryan Gates

67

ฉันรู้ว่ามันเก่าแล้วนี่คือสิ่งที่เกิดขึ้นในการค้นหาโดย Google ของฉัน ฉันต้องการอ้างอิงแพ็คเกจเหล่านี้ใน NuGet:

ป้อนคำอธิบายภาพที่นี่


ในกรณีของฉัน (VS2019) ฉันจำเป็นต้องอัปเกรดแพ็คเกจเหล่านี้จากนั้นก็แก้ไขปัญหาได้ ไชโย!
RJFalconer

สิ่งนี้ทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน ฉันใช้ Rider และแอปพลิเคชั่นนี้สร้างขึ้นใน VS. ขอขอบคุณที่วางสิ่งนี้ไว้ที่นี่
Yatin

17

DLL ที่คุณกำลังมองหาซึ่งมีเนมสเปซนั้นอยู่

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

หมายเหตุ: การทดสอบหน่วยที่ไม่สามารถนำมาใช้ใน Visual Studio ด่วน


3
คุณช่วยให้ลิงค์ดาวน์โหลดได้ไหม
Amit Pal

@AmitPal คุณมี Visual Studio รุ่นอะไร? ควรรวมไว้กับฉบับส่วนใหญ่
Joachim Isaksson

visual studio 2010 และ. net 4.0
Amit Pal

@AmitPal ดูคำตอบของฉันสำหรับคำถามนี้สำหรับเส้นทาง DLL มันต้องอยู่ที่นั่น
Agent007

5
@AmitPal Visual Studio 2010 Express ไม่มี DLL นั้นและไม่สามารถเพิ่มเพื่อให้การทดสอบหน่วยทำงานได้ (คุณจะต้องใช้เครื่องมือทดสอบของบุคคลที่สามเช่น nUnit) หากคุณใช้มืออาชีพขึ้นไปโปรดดูคำตอบของ agent007
Joachim Isaksson

10

นอกจากนี้ยังมีแพ็คเกจนักเก็ตที่ดี มันจะดึง dll ไปที่โฟลเดอร์แพ็คเกจของคุณ คุณจะต้องเพิ่มการอ้างอิงไปยัง dll ด้วยตนเอง

หมายเหตุ : แพ็คเกจนี้ไม่ใช่แพ็คเกจ Microsoft อย่างเป็นทางการ


1
แพคเกจ nuget ไม่สามารถติดตั้งในโปรเจ็กต์สำหรับ. net 4.0 ด้วย VS2013 ตัวเลือกเดียวสำหรับเวอร์ชันคือ 11.0.50727.1
WebComer

1
ใครสามารถพูดได้ว่านักเก็ตนี้เป็นของ Microsoft จริงหรือไม่? ดูเหมือนจะเป็นนักเก็ตส่วนตัวที่มีส่วนประกอบของ Microsoft
BozoJoe

9

เพื่อแก้ไขปัญหานี้ฉันต้องทำสิ่งต่อไปนี้:

  1. เรียกใช้ Visual Studio Installer พร้อมสิทธิ์ระดับผู้ดูแลระบบ
  2. หากระบบแจ้งให้คุณติดตั้งโปรแกรมปรับปรุงสำหรับ Visual Studio ให้ทำก่อนดำเนินการต่อ
  3. เมื่อได้รับแจ้งให้คลิกปุ่มเพื่อแก้ไขการติดตั้งที่มีอยู่
  4. คลิกที่แท็บ / ส่วนหัว "แต่ละองค์ประกอบ" ที่ด้านบน
  5. เลื่อนลงไปที่ส่วน "การแก้ไขข้อบกพร่องและการทดสอบ"
  6. ทำเครื่องหมายในช่องถัดจาก "ประสิทธิภาพของเว็บและเครื่องมือทดสอบการโหลด"
  7. คลิกปุ่มปรับเปลี่ยนที่มุมล่างขวาของกล่องโต้ตอบเพื่อติดตั้ง DLL ที่หายไป

เมื่อติดตั้ง DLL แล้วคุณสามารถเพิ่มการอ้างอิงให้โดยใช้วิธีการที่ Agent007 ระบุไว้ในคำตอบของเขา


1
"เครื่องมือทดสอบประสิทธิภาพเว็บและโหลด" ไม่ปรากฏอีกต่อไป คุณจะแนะนำอะไรให้เราเลือกแทน
Shafiq Jetha

@ShafiqJetha ฉันยังคงเห็นตัวเลือก "ประสิทธิภาพของเว็บและเครื่องมือทดสอบการโหลด" ฉันใช้ Visual Studio Enterprise 2017 - 15.8.9 คุณใช้รุ่นอะไร ดูเหมือนว่า Microsoft จะเปลี่ยนอินเทอร์เฟซของโปรแกรมติดตั้งเล็กน้อยตั้งแต่ฉันเขียนโพสต์ด้านบน เมื่อฉันเปิดโปรแกรมติดตั้ง Visual Studio (เรียกใช้ในฐานะผู้ดูแลระบบ) ฉันคลิกปุ่ม "เพิ่มเติม" ทางด้านขวาของปุ่ม "อัปเดต" และ "เปิดใช้งาน" จากนั้นเลือก "ปรับเปลี่ยน" จากนั้นดำเนินการต่อตามขั้นตอนที่ 4 ในรายการใน โพสต์ของฉันด้านบน
S. Hooley

ฉันใช้โปรแกรมติดตั้ง Build Tools สำหรับ Visual Studio 2017 ดังนั้นอาจอธิบายได้
Shafiq Jetha

@ShafiqJetha คุณใช้อะไร?
Vin Shahrdar

@VinShahrdar ฉันจำไม่ได้จริงๆ; นี่เป็นเวลานานมาแล้ว ฉันคิดว่าเราแก้ปัญหาได้โดยใช้แพ็คเกจ NuGet ของคนอื่นเพื่อรับ DLL ที่ต้องการ หรือบางทีเราอาจบันทึก DLL ไปยัง repo ฉันจำไม่ได้จริงๆขอโทษ
Shafiq Jetha

8

ถ้าคุณกำลังใช้ Visual Studio 2017 Community ตำแหน่งคือ:

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 Package Manager แทน)

คุณไปอ้างอิงคลิกขวาเลือกเพิ่มการอ้างอิงเรียกดู ไปที่เส้นทางจากนั้นดับเบิลคลิกที่ไฟล์

จากนั้นคุณต้องมีusingคำสั่งที่ด้านบนของชั้นเรียนทดสอบหน่วยของคุณ:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
โดยการเรียกดูหมายถึงปุ่มเรียกดูที่ด้านล่างไม่ใช่โฟลเดอร์เรียกดูทางด้านซ้าย
Alan Baljeu

@AlanBaljeu จริงมาก.
vapcguy

0

เช่นสำหรับ Visual Studio 2013 ฉันจะอ้างอิงแอสเซมบลีนี้:

Microsoft.VisualStudio.Shell.14.0.dll

คุณสามารถค้นหาได้เช่นที่นี่:

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

และอย่าลืมใช้:

ใช้ Microsoft.VisualStudio;


0

หากคุณมาที่นี่เนื่องจากงานบิลด์ VSTS ของคุณล้มเหลวด้วยข้อความแสดงข้อผิดพลาดด้านบน ตรวจสอบให้แน่ใจว่าคุณกำลังใช้งาน nuget อย่างน้อยเวอร์ชัน 2. * เพื่อกู้คืนแพ็กเกจของคุณ


คุณรู้หรือไม่ว่าทำไมต้องใช้เวอร์ชัน 2. *? เราอยู่ใน TFS 2017 และพบข้อผิดพลาดนี้
DylanSp

ฉันเพิ่งยกโค้ดจาก QA เป็น UAT และตอนนี้ฉันกำลังทดสอบ SAME unittests บนคอมพิวเตอร์ SAME ในโฟลเดอร์ Parent เดียวกันในโซลูชันเดียวกัน แต่ไม่นะ .. จู่ๆก็ไม่พบเลย .... ฉันเบื่อ Microsofts Path นรกที่พวกเขาสร้างขึ้นในปีต่อ ๆ มา
Christian

0

ฉันพบปัญหานี้หลังจากย้ายโปรเจ็กต์และลบโฟลเดอร์แพ็กเกจ Nuget แสดงว่าติดตั้ง MSTest.TestAdapter และ MSTest.TestFramework v 1.3.2 แล้ว การแก้ไขดูเหมือนจะเปิด VS ในฐานะผู้ดูแลระบบและสร้างหลังจากนั้นฉันสามารถเปิดใหม่และสร้างได้โดยไม่ต้องมีสิทธิ์ผู้ดูแลระบบ


0

เพิ่มการอ้างอิงไปยัง 'Microsoft.VisualStudio.QualityTools.UnitTestFramework "NuGet packet และควรสร้างสำเร็จ


ฉันแน่ใจว่าอีกเจ็ดรายการที่แนะนำวิธีแก้ปัญหาที่แน่นอนนี้ไม่ได้ส่งผ่านไปยังผู้อ่าน การทำซ้ำจะดียิ่งขึ้นเมื่อคุณทำซ้ำ
Christian

0

ด้วย Visual Studio 2019 ที่รันโครงการ. net core 3.1 คุณจะต้องติดตั้งกรอบการทดสอบล่าสุดเพื่อแก้ไขข้อผิดพลาด

วิธีที่ง่ายที่สุดในการดำเนินการนี้คือการวางเมาส์เหนือคำอธิบายประกอบ [ทดสอบ] (ขีดเส้นใต้ด้วยสีแดง) แล้วเลือกการแก้ไขที่แนะนำ สิ่งที่จำเป็นคือ "ค้นหาและติดตั้งกรอบการทดสอบล่าสุด"


-4

เพียงอ้างอิง URL นี้และดาวน์โหลดและบันทึกไฟล์ dll ที่จำเป็น @ ตำแหน่งนี้:

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.