System.web.mvc गायब है


89

हमारे पास एक पुराना ASP.NET MVC 3 वेब एप्लीकेशन है, जिसका निर्माण VS2010 में किया गया है, जो पिछले सप्ताह के सुरक्षा अद्यतन के बाद से संकलन करने में विफल है।

समस्या यह है कि System.Web.Mvc.dll का संदर्भ टूट गया है।

जब मैं हमारी बिल्ड मशीन पर समाधान फ़ाइल खोलता हूं, जहां सुरक्षा अद्यतन नहीं चला है, और संदर्भ-> System.Web.MVC के लिए गुण संवाद खोलें, यह ठीक लगता है।

पथ C: \ Program Files \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll संस्करण है 3.0.0.0

लेकिन जब मैं एक ईश्वर मशीन पर समाधान फ़ाइल खोलता हूं, जहां सुरक्षा अद्यतन चलाया गया है, तो संदर्भ-> System.Web.MVC को लापता के रूप में चिह्नित किया गया है। यदि मैं इसे हटाता हूं, और इसे VS2010 के संदर्भ संदर्भ जोड़कर वापस जोड़ने का प्रयास करता हूं, तो यह प्रदर्शित नहीं होता है।

वेब पर घूमते हुए मुझे NuGet का उपयोग करके MVC को अपडेट करने से संबंधित सुझाव दिए गए हैं। हम अपने VS2010 परियोजनाओं में NuGet का उपयोग नहीं करते हैं, ताकि इस स्थिति के लिए यह सही नहीं लगता है। मैंने इसे वैसे भी आजमाया, और आधा दर्जन गायब संदर्भों के साथ समाप्त हुआ।

जब मैं Windows Explorer में "C: \ Program Files \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll" के गुणों को देखता हूं, तो बिल्ड मशीन पर मुझे संस्करण 3.0.0.0 दिखाई देता है।

जब मैं देव मशीन पर गुणों को देखता हूं, तो मुझे संस्करण 3.0.50813.1 दिखाई देता है।

मुझे जो कुछ भी चाहिए उसे बदलने का एक तरीका है, ताकि मैं निर्माण करूं और चला सकूं ताकि मैं .NET 3.0 फ्रेमवर्क में स्थापित इन दो DLL में से किसी को भी बना सकूं और चला सकूं।

विचार?

मैंने कोशिश की है कि काम नहीं किया

पहला प्रयास - यदि विधानसभा गायब है, तो इसे जोड़ें। मैंने पुराना गायब संदर्भ हटा दिया। फिर मैंने अपने प्रोजेक्ट में एक फ़ोल्डर में "ASP.NET MVC3 \ Assemblies" फ़ोल्डर से DLL की प्रतिलिपि बनाई। इसे "हमेशा कॉपी करें" के रूप में सेट करें, और इसे संदर्भ के रूप में जोड़ा।

उस के साथ, यह परियोजना VS2010 में संकलित करेगी, लेकिन जब मैं aspnet_compiler के साथ पृष्ठों को पूर्वनिर्मित करने की कोशिश करूंगा, तो मुझे चेतावनी मिली:

(0): warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy

अब तक, मैं रनटाइम नीतियों को समझने से बचने के लिए प्रबंधन करने में सक्षम था, लेकिन मैंने इसे जोड़ने की कोशिश की, web.config:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

फिर से कोशिश की, और एक ही चेतावनी मिली।

मेरा सवाल है - क्या मुझे अभी भी कोई समस्या है? या चेतावनियों के बावजूद, क्या मेरा समाधान होगा?


क्या आपने सभी नगेट पैकेजों को उनके नवीनतम संस्करण (जहां संभव हो) को अपडेट करने की कोशिश की है?
सिल्वरमाइंड

1
मुझे आश्चर्य है कि यदि आप MS14-059 अपडेट बग में चल रहे हैं ...
स्टीवन वी

1
वेब ऐप में कोई नगेट पैकेज नहीं है। और हाँ, यह MS14-059 बग है।
जेफ डेगे

मुझे वही समस्या आ रही है, हालाँकि मैं इसके बजाय nuget पैकेज और संस्करण 4 का उपयोग कर रहा हूं। यह ठीक संकलित करता है, और यह सब काम करता है, लेकिन इन 20+ संकलन चेतावनियों से मैं छुटकारा पाना चाहता हूं।
फरिनहा

जवाबों:


141

NuGet के माध्यम से MVC3 का नवीनतम संस्करण प्राप्त करें। देव स्टूडियो में अपना प्रोजेक्ट खोलें। Dev Studio के नीचे पैकेज मैनेजर कंसोल टैब खोलें। फिर इस कमांड का उपयोग करें:

PM> Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1

यदि आप "-Version" के बाद टैब कुंजी पर क्लिक करते हैं तो आपको सभी उपलब्ध संस्करणों की सूची मिल जाएगी।

यदि आपके पास NuGet का पुराना संस्करण है, तो आपको यह इंगित करने में त्रुटि हो सकती है कि आपको इसे अपग्रेड करना है। यदि हां, तो NuGet के नवीनतम संस्करण को स्थापित करने के लिए टूल-> एक्सटेंशन मैनेजर खोलें। ध्यान दें, आपको NuGet इंस्टॉल करने से पहले Dev Studio को एडमिनिस्ट्रेटर के रूप में चलाना होगा।

MVC3 को स्थापित करके अपने प्रोजेक्ट में Web.config को अपडेट करना चाहिए।

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.0.1" newVersion="3.0.0.1" />
  </dependentAssembly>
</assemblyBinding>

1
Badabing !!!! इस पर घंटे बिताए ... सरल Nuget दोपहर में संस्करण स्थापित करने के लिए .... धन्यवाद एक गुच्छा !!!
स्कवॉयर 3lz

हां, Nuget विजुअल स्टूडियो 2010 के साथ काम करता है। आपको इसे एक्सटेंशन मैनेजर के माध्यम से इंस्टॉल करना होगा। टूल्स मेनू के अंतर्गत।
3spot

2
Microsoft-spNet.vc स्थापित करें-पैकेज समस्या को ठीक करेगा। हमें वास्तव में संस्करण संख्या
sujay kodamala

2
@sujaykodamala यदि आप नवीनतम MVC3 और MVC5 (पैकेज का नवीनतम संस्करण) नहीं स्थापित करना चाहते हैं तो संस्करण संख्या मामलों को सेट करना।
3spot

Install-Package Microsoft.AspNet.Mvc -Project ProjectName -Reinstallअधिक स्पष्ट है, आपके पास उस परियोजना के लिए संस्करण स्थापित करता है और इसे अन्य परियोजनाओं (यदि वांछित हो) को छूने से रोकता है।
माइक ई

30

MVC 5

C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET वेब स्टैक 5 \ पैकेज \ Microsoft.AspNet.Mvc.5.0.0 \ lib \ net45 \ System.Web.Mvc.dll

MVC 4

C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET MVC 4 \ Assemblies \ System .eb.Mvc.dll

MVC 3

C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System .eb.Mvc.dll

MVC 2

C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET MVC 2 \ Assemblies \ System .eb.Mvc.dll

मैं कहाँ मिल सकता हूँ। System.ebeb.MVC सिस्टम में MVC 3 कहाँ स्थापित है?


धन्यवाद, इससे मुझे 2018 में VS2010 के लिए लक्षित परियोजना को खोलने में मदद मिली :)
Aamol

23

इस समस्या को हल करने का सबसे आसान तरीका है ASP.NET MVC 3 को वेब प्लेटफ़ॉर्म इंस्टॉलर से इंस्टॉल करना।

यहाँ छवि विवरण दर्ज करें

http://www.microsoft.com/web/downloads/

या Nuget कमांड का उपयोग करके

Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1

1
जब मैंने एक नए पीसी पर स्विच किया और ASP.NET MVC 4 dll के संदर्भ के साथ एक परियोजना थी, जिसे मैंने अभी तक नई मशीन पर स्थापित नहीं किया था, तो यह मेरा मुद्दा सुलझ गया।
क्लोवोला

3

वीएस 2017 में मैंने समाधान को साफ किया और इसे फिर से बनाया और इसे तय किया


2

मेरे पास एक ही स्थिति है: Visual Studio 2010, कोई NuGet स्थापित नहीं है, और System.Web.Mvc संस्करण 3 का उपयोग करके ASP.NET अनुप्रयोग है।

मेरे लिए जो काम किया गया था, वह था प्रत्येक C # प्रोजेक्ट को सेट करना। जो System.Web.Mvc का उपयोग करता है, Solution Explorer में सन्दर्भों में जाने के लिए, और System.Web.Mvc पर गुण सेट करता है, कॉपी लोकल के साथ सही, और विशिष्ट संस्करण के लिए गलत - पिछले संस्करण ने उस मशीन पर वर्तमान संस्करण दिखाने के लिए संस्करण क्षेत्र का कारण बना।


1

Vs2017 में यह समस्या थी, मुझे पहले से ही NVCet के माध्यम से MVC मिल गया था, लेकिन System.eb.Mvc "Add Reference" के तहत "असेंबली" सूची में दिखाई नहीं दिया।

समाधान "असेंबलियों" के तहत "एक्सटेंशन" का चयन "संदर्भ जोड़ें" संवाद में किया गया था।


0

मेरे मामले में मेरी परियोजना में सभी उचित संदर्भ थे। मैंने पाया कि समाधान के निर्माण से नगेट पैकेज अपने आप बहाल हो गए।


0

Vs2015 में खोला गया नमूना mvcmusicstore.codeplex.com कुछ संदर्भों से चूक गया, उनमें से एक System.web.mvc है।

इसके लिए तय यह था कि इसे संदर्भों से हटा दिया जाए और एक संदर्भ जोड़ा जाए: असेंबली के तहत एक्सटेंशन्स चुनें , वहां आप System.Web.Mvc पा सकते हैं और जोड़ सकते हैं।

(अन्य असेंबली मैंने नगेट पैकेज के साथ जोड़ीं।)


0

बस किसी के मामले में वह एक स्थिति है जहाँ उसे वही त्रुटि मिलती है। मेरे मामले में Microsoft.AspNet.Mvc को अपग्रेड करने और फिर इसे अपग्रेड करने में फिर से मदद मिली। मुझे ग्लॉब स्थापित करने और इसे हटाने के बाद यह समस्या थी। System.Web.Mvc किसी भी तरह से गलत था, समाधान को साफ करना या इसे पुनर्निर्माण करना मेरे मामले में काम नहीं किया। यदि यह उपरोक्त उत्तरों में से कोई भी आपके लिए काम करता है तो बस इसे आज़माएं।


0

संदर्भ को फिर से जोड़ें ।/packages/Microsoft.AspNet.Mvc.dversionthing/lib/net45/System.Web.Mvc.dll

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.