.net - System.Web.Mvc क्यों संदर्भ संदर्भ में सूचीबद्ध नहीं है?




visual-studio assembly-references (8)

सी #, विजुअल स्टूडियो 2010 का उपयोग करना।

MSDN पर प्रलेखित System.Web.Mvc नामक एक नामस्थान है। उस नामस्थान में सभी प्रकार के दस्तावेज़ों का कहना है कि वे System.Web.Mvc.dll

हालांकि, जब मैं संदर्भ जोड़ने के लिए जाता हूं, ".NET" टैब, यह असेंबली सूची से गायब है। क्यूं कर?


"ठीक है, उस XML को Web.config में जोड़कर काम करता है, लेकिन यह सवाल का जवाब नहीं देता है"

यह वहां होना चाहिए। डिफ़ॉल्ट रूप से जोड़ें संदर्भ सूची का आदेश दिया जाता है, लेकिन यह मामला नहीं है। नाम शीर्षलेख दबाएं और फिर देखें।


NuGet पैकेज प्रबंधक का उपयोग करने का सबसे अच्छा तरीका है।

बस नीचे दिए गए एमवीसी पैकेज को अपडेट करें और इसे काम करना चाहिए।


इन चरणों की जांच करें:

  1. जांच एमवीसी ठीक से स्थापित है।
  2. प्रोजेक्ट की संपत्ति की जांच करें और देखें कि परियोजना लक्ष्य ढांचा क्या है। यदि लक्ष्य ढांचा .NET Framework 4 पर सेट नहीं है, तो इसे सेट करें।

नोट : यदि लक्ष्य ढांचे को नेट फ्रेमवर्क 4 क्लाइंट प्रोफाइल पर सेट किया गया है, तो यह संदर्भ सूची पर एमवीसी संदर्भ सूचीबद्ध नहीं करेगा। आप नेट फ्रेमवर्क 4 और नेट फ्रेमवर्क 4 क्लाइंट प्रोफाइल के बीच अलग-अलग पा सकते हैं।

.NET Framework 4 क्लाइंट प्रोफ़ाइल .NET Framework 4 का सबसेट है जो क्लाइंट अनुप्रयोगों के लिए अनुकूलित है। यह विंडोज प्रेजेंटेशन फाउंडेशन (डब्ल्यूपीएफ), विंडोज फॉर्म, विंडोज कम्युनिकेशन फाउंडेशन (डब्ल्यूसीएफ), और क्लिकऑन फीचर्स सहित अधिकांश क्लाइंट अनुप्रयोगों के लिए कार्यक्षमता प्रदान करता है। यह .NET Framework 4 क्लाइंट प्रोफ़ाइल को लक्षित करने वाले अनुप्रयोगों के लिए तेज़ी से तैनाती और एक छोटा इंस्टॉल पैकेज सक्षम बनाता है।


इसे अलग किया जा सकता है, और इसे फ़्रेमवर्क में शामिल नहीं किया गया है, टैब सूची "एक्सटेंशन" चुनें और यह मौजूद है और अन्य libs हैं, पुरानी libs आदि के लिए सभी की आवश्यकता नहीं है, पुरानी 20 30 और 4001 मौजूद है


मेरा मानना ​​है कि आपको मिलेगा कि एमवीसी असेंबली को वेब.कॉन्फिग फ़ाइल में संदर्भित किया गया है, न कि प्रोजेक्ट में।

कुछ इस तरह:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </assemblies>
</compilation>

आपकी टिप्पणी का जवाब देने के लिए;

सबसे अच्छा जवाब मैं here से दे सकता हूं:

ऐड एलिमेंट एक गतिशील संसाधन के संकलन के दौरान उपयोग करने के लिए एक असेंबली संदर्भ जोड़ता है। प्रत्येक कोड मॉड्यूल को संकलित करते समय ASP.NET स्वचालित रूप से इस असेंबली को संसाधन में लिंक करता है।


मेरे पास एक ही समस्या थी और System.Web.MVC संदर्भ असेंबली का पता लगाने में सक्षम नहीं था।

अंत में पता चला और यह निम्नलिखित स्थान के अंदर स्थित था।

ध्यान दें कि यदि आपका वीएस सी में स्थापित किया गया था: (कभी-कभी MVC.dll डिफ़ॉल्ट स्थान पर नहीं है जो हर कोई बात करता है, मेरा मतलब सी: ड्राइव में स्थित " संदर्भ असेंबली " फ़ोल्डर है।)

यदि यह वहां नहीं है, तो यह निश्चित रूप से यहां होना चाहिए:

\ प्रोग्राम फ़ाइलें (x86) \ Microsoft ASP.NET \ ASP.NET MVC 2 \ Assemblies \ System.Web.Mvc.dll

तो जोड़ संदर्भ मेनू में नेविगेटिंग या ब्राउज़ टैब के माध्यम से डीएल जोड़ें।


यह विजुअल स्टूडियो 2012 के लिए बदल गया है (मुझे पता है कि मूल प्रश्न वीएस -2010 कहता है, लेकिन शीर्षक अभी भी खोजों पर हिट होगा)।

जब आप एक वीएस2012 एमवीसी प्रोजेक्ट बनाते हैं, तो system.web.mvc संकुल फ़ोल्डर में रखा जाता है जो समाधान के लिए सहकर्मी है। इसे डिफ़ॉल्ट रूप से वेब प्रोजेक्ट में संदर्भित किया जाएगा और आप वहां सही पथ पा सकते हैं)।

यदि आप इसे किसी माध्यमिक प्रोजेक्ट में संदर्भित करना चाहते हैं (फ़िल्टर या अन्य विशेषताओं के साथ एक सहायक .dll कहें), तो आप इसे वहां से संदर्भित कर सकते हैं।


वांछित असेंबली अब सूची में दिखाई दी है।

मैं केवल अनुमान लगा सकता हूं कि यह किस कारण दिखता है, लेकिन मुझे संदेह है कि यह तथ्य है कि मैं फ़ाइलनयाप्रोजेक्टएएसपी.नेट वेब एप्लिकेशन चला गया, जिसे मैंने पहले कभी नहीं किया था। यह संभव है कि इसने कुछ प्रकार के प्रारंभिक प्रारंभिक होने और वेब विकास के लिए अतिरिक्त असेंबली के साथ सूची तैयार की।






assembly-references