हमारे कोडबेस को मामूली अपडेट के बाद भी ASP .NET MVC प्रोजेक्ट को चलाने की कोशिश में मुझे इस समस्या का सामना करना पड़ रहा था, भले ही इसके बिना इसका अनुपालन हो:
संकलक त्रुटि संदेश: CS0012: प्रकार 'System.Object' को एक असेंबली में परिभाषित किया गया है जिसे संदर्भित नहीं किया गया है। आपको असेंबली 'System.Runtime, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, 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, संस्कृति = तटस्थ, PublicKeyToken = b03f5f7f11d50a3a' का संदर्भ जोड़ना होगा।
c: \ Windows \ Microsoft.NET \ फ्रेमवर्क 64 \ v4.0.30319 \ अस्थाई ASP.NET फ़ाइलें \ meseems.webapp \ 68e2ea0f \ 8c5ee951 \ विधानसभा \ dl3 \ 52ad4dr \ 84698469_3bb3d401 \ System.Collections.Immutable.DLutable.DLutable स्थान। पिछली त्रुटि)
जाहिरा तौर पर हमारी परियोजना में जोड़ा गया एक नया पैकेज .NET फ्रेमवर्क के एक पुराने संस्करण को संदर्भित कर रहा था, जिससे "कई विधानसभाओं में परिभाषा" समस्या (CS1685) पैदा हुई, जिसके कारण रनटाइम में रेजर व्यू कंपाइलर त्रुटि हुई।
मैंने असंगत पैकेज (System.Collections.Immutable.dll) को हटा दिया और समस्या उत्पन्न होना बंद हो गई। हालाँकि, यदि पैकेज को आपके प्रोजेक्ट में हटाया नहीं जा सकता है, तो आपको बाहुबली के उत्तर की कोशिश करनी होगी ।