ในโซลูชัน C # ฉันเพิ่มโครงการที่มีอยู่
หลังจากนั้น Visual Studio ได้เพิ่มรายการต่อไปนี้ในไฟล์. csproj อื่น ๆ :
<ItemGroup>
<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
</ItemGroup>
มีไว้เพื่ออะไร
ฉันสามารถลบมันได้หรือไม่
ในโซลูชัน C # ฉันเพิ่มโครงการที่มีอยู่
หลังจากนั้น Visual Studio ได้เพิ่มรายการต่อไปนี้ในไฟล์. csproj อื่น ๆ :
<ItemGroup>
<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
</ItemGroup>
มีไว้เพื่ออะไร
ฉันสามารถลบมันได้หรือไม่
คำตอบ:
ฉันมีกรณีที่คล้ายกันซึ่งสิ่งนี้ถูกเพิ่ม:
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
การรวมนี้จะสร้างขึ้นตามวัตถุประสงค์โดย VS2013 หากคุณสร้างโครงการทดสอบ NUnit แต่ลืมติดแท็กเป็นโครงการทดสอบตามที่อธิบายไว้ในคำตอบนี้จาก Microsoft:
พฤติกรรมนี้มีเจตนา
เพื่อสนับสนุนกรอบการทดสอบของบุคคลที่สามเช่น NUnit และ XUnit, Visual Studio 2012 ได้ทำการโหลด Test Explorer เมื่อเปิดโซลูชันไม่ว่าจะมีโครงการทดสอบหรือไม่ ไม่กี่วินาทีที่เพิ่มความล่าช้าในการเริ่มต้นและแก้ไขสถานการณ์เปิดสำหรับผู้ใช้ทั้งหมดซึ่งส่วนใหญ่ไม่ได้ใช้การทดสอบ
ใน Visual Studio 2013 เราเปลี่ยนเพื่อให้โหลดแพคเกจทดสอบ Explorer เมื่อโซลูชันประกอบด้วยโครงการทดสอบอย่างน้อยหนึ่งโครงการ โครงการทดสอบถูกระบุด้วยสองวิธีที่แตกต่างกัน โปรเจ็กต์ที่สร้างจากหนึ่งในเท็มเพลตการทดสอบหน่วยในตัวถูกระบุโดยใช้ GUID ประเภทโครงการ โครงการประเภทอื่น ๆ เช่นโครงการ Class Library ที่มีการทดสอบ XUnit หรือ NUnit นั้นจะถูกระบุโดย Test Explorer ในระหว่างการค้นพบการทดสอบครั้งแรกและ“ แท็ก” ด้วย
<Service/>
รายการ
โดยส่วนตัวฉันไม่ชอบบริการนี้เพิ่มลงในไฟล์โครงการของฉันและฉันคิดว่าการให้บริการนี้เป็นเหมือนวิธีแก้ปัญหามากกว่าเป็นวิธีแก้ไขปัญหาที่เหมาะสม ดังนั้นการทำเครื่องหมายโครงการทดสอบของคุณเป็นโครงการทดสอบที่ดูเหมือนว่าถูกต้องสำหรับฉันมากขึ้นและสามารถทำได้โดยเพิ่มสิ่งนี้เป็นครั้งแรกPropertyGroup
:
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TestProjectType>UnitTest</TestProjectType>
{3AC096D0-A1C2-E12C-1390-A8335801FDAB}
หมายถึงโครงการทดสอบและ{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- C # สำหรับ guids ประเภทโครงการอื่น ๆ ไปที่นี่
ProjectTypeGuids
เช่นกัน แต่ถ้าคุณกำลังพัฒนาข้ามแพลตฟอร์มและใช้ MonoDevelop คุณจะไม่สามารถเปิด{3AC096D0-A1C2-E12C-1390-A8335801FDAB}
โครงการได้: "MonoDevelop ไม่สนับสนุนโครงการประเภทนี้" IDE ทั้งสองดูเหมือนว่ามีความสุขถ้าคุณเพียงแค่ลบประเภทโครงการทดสอบ GUID
สิ่งที่ดีเกี่ยวกับGUID ที่รู้จักกันดี / คงที่ก็คือพวกมันมีเอกลักษณ์ที่ไม่เหมือนใครและง่ายต่อการค้นหาใน Google ซึ่งฉันทำและพบ:
สิ่งนี้และสิ่งนี้รวมถึงเพลงฮิตที่น่าสนใจอื่น ๆ
ดูเหมือนว่านี่เป็นข้อผิดพลาดที่รู้จักในเครื่องมือ T4 DSL ซึ่งมาพร้อมกับ SDK และโชคดีที่มันง่ายพอที่จะแก้ไขได้ด้วยการเปลี่ยนรีจิสตรีคีย์