ฉันยังประสบปัญหานี้พยายามที่จะเรียกใช้โครงการ ASP .NET MVC หลังจากการอัพเดทเล็กน้อยถึง codebase ของเราแม้ว่ามันจะรวบรวมโดยไม่มีข้อผิดพลาด:
ข้อความแสดงข้อผิดพลาดของคอมไพเลอร์: CS0012: ประเภท 'System.Object' ถูกกำหนดไว้ในชุดประกอบที่ไม่ได้อ้างอิง คุณต้องเพิ่มการอ้างอิงถึงแอสเซมบลี 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'
โครงการของเราไม่เคยพบปัญหานี้ดังนั้นฉันจึงสงสัยเกี่ยวกับการเปลี่ยนไฟล์การกำหนดค่าก่อนที่จะค้นหาสาเหตุที่แท้จริง จากบันทึกข้อผิดพลาดฉันสามารถค้นหาผลลัพธ์คอมไพเลอร์โดยละเอียดซึ่งชี้ให้เห็นสิ่งที่เกิดขึ้นจริง:
เตือน CS1685:ประเภทที่กำหนดไว้ล่วงหน้า 'System.Runtime.CompilerServices.ExtensionAttribute' ถูกกำหนดไว้ในแอสเซมบลีหลายในนามแฝงส่วนกลาง ใช้คำนิยามจาก 'c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ mscorlib.dll'
c: \ Users \ Admin \ Software Development \ source-control \ Binaries \ Publish \ WebApp \ Views \ Account \ Index.cshtml (35,20): ข้อผิดพลาด CS0012: ประเภท 'System.Object' ถูกกำหนดไว้ในชุดประกอบที่เป็น ไม่ได้อ้างอิง คุณต้องเพิ่มการอ้างอิงถึงแอสเซมบลี 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'
c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ meseems.webapp \ 68e2ea0f \ 8c5ee951 \ assembly \ dl3 \ 52ad4dac \ 84698469_3bb3d401 \ System.Collections.Immutable.DL: (ที่ตั้งของสัญลักษณ์ที่เกี่ยวข้อง ข้อผิดพลาดก่อนหน้า)
เห็นได้ชัดว่าแพคเกจใหม่ที่เพิ่มเข้ามาในโครงการของเราคือการอ้างอิง. NET Framework รุ่นเก่ากว่าทำให้เกิด "คำจำกัดความในหลายแอสเซมบลี" (CS1685) ซึ่งนำไปสู่ข้อผิดพลาดคอมไพเลอร์ดูมีดโกนที่รันไทม์
ฉันลบแพ็กเกจที่เข้ากันไม่ได้ (System.Collections.Immutable.dll) และปัญหาหยุดเกิดขึ้น แต่ถ้าแพคเกจไม่สามารถเอาออกในโครงการของคุณคุณจะต้องพยายามตอบ Baahubali ของ