2013-06-06 7 views
11

मैंने कुछ समय पहले एमवीसी 3 से एमवीसी 4 में एक प्रोजेक्ट ले जाया था।विजुअल स्टूडियो एक्सप्रेस 2012 एप.कॉन्फिग रीमेपिंग असेंबली

जब मैं निर्माण, मैं

1> No way to resolve conflict between "System.Web.Mvc, Version=3.0.0.0 ..." and , Version=2.0.0.0 
1> Consider app.config remapping of assembly "System.Web.WebPages ..." from Version "1.0.0.0" to Version "2.0.0.0" to solve conflict and get rid of warning. 
1> Consider app.config remapping of assembly "System.Web.WebPages.Razorfrom Version "1.0.0.0" [c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll] to Version "2.0.0.0" [C:\Users\OEM\documents\visual studio 2012\Projects\DabTrial\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll] to solve conflict and get rid of warning. 

और इतने पर संदेशों मिलता है।

जब मैं संदर्भ देखता हूं, तो वे सभी बाद के संस्करण हैं, और web.config केवल बाद के संस्करणों को संदर्भित करता है। जब मैं सार्वजनिक कुंजी टोकन (विंडोज एक्सप्लोरर में) द्वारा संपूर्ण समाधान निर्देशिका खोजता हूं तो मुझे पिछले संस्करणों के संदर्भों के साथ कोई XML प्रकार की फ़ाइलें नहीं मिलतीं।

स्पष्ट रूप से फ़ाइलों का पथ अलग है, लेकिन मुझे नहीं पता कि संकलक को पहले .dll फ़ाइल के पथ पर निर्देशित किया जा रहा है।

प्रोजेक्ट ठीक बनाता है और चलाता है, लेकिन मुझे लगता है कि संकलक किसी कारण के लिए इन परिवर्तनों का सुझाव दे रहा है। किसी भी मदद के लिए धन्यवाद।

+0

आप किसी भी आप पुस्तकालयों nuget साथ स्थापित किया है क्या है? – DSlagle

+0

पुस्तकालयों को अद्यतन करने के बाद हाँ, एकाधिक, और निर्माण संदेश उत्पन्न हुए। मैं – Brent

+5

को खोजने/ठीक करने के बारे में जानने के लिए nuget के साथ पर्याप्त परिचित नहीं हूं, पैकेज प्रबंधक कंसोल में अद्यतन-पैकेज-पुनर्स्थापित करने का प्रयास करें। ऐसा करने के लिए आपको nuget 2.1 स्थापित करना होगा, लेकिन यह आपके सभी तृतीय पक्ष libs को फिर से लक्षित करेगा। .NET 4.5 को अपडेट करने के कुछ दिन पहले यह मेरे प्रोजेक्ट पर था। मैं एक ही प्रकार का त्रुटि संदेश था। अधिक जानकारी के लिए इस लिंक को देखें http://stackoverflow.com/questions/12006991/retargeting-solution-from-net-4-0-to-4-5-how-to-retarget-the-nuget-packages – DSlagle

उत्तर

12

आपकी न्यूज निर्भरता शायद एमवीसी 3 संस्करण का संदर्भ दे रही है। Package Manager Console

Update-Package -Reinstall 

आपको कम से कम nuget के 2.1 संस्करण है करने के लिए है में निम्नलिखित

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

तुम भी चल रहा है की कोशिश कर सकते हैं: आप MVC4 संस्करण के लिए मजबूर करने के लिए अपने वेब config में निम्नलिखित डाल कोशिश कर सकते हैं इस कमांड के लिए, लेकिन यह आपके पैकेज अपडेट करेगा और यदि आपने .NET को अपडेट किया है तो उन्हें पुनः लक्षित करें। आप अधिक जानकारी के लिए इस पोस्ट को देख सकते हैं।

Retargeting solution from .Net 4.0 to 4.5 - how to retarget the NuGet packages?

+0

धन्यवाद आप DSlagle - बस आपको पोस्ट करने के लिए कहने के बारे में था इसलिए मैं जवाब स्वीकार कर सकता था। मुझे लगता है कि इसे जल्द ही डुप्लिकेट के रूप में चिह्नित किया जाएगा, लेकिन मैं देख सकता हूं कि मेरी खोजों को आपके स्टैक ओवरफ़्लो लिंक को कैसे नहीं मिला। – Brent

+0

बस साइड नोट है, 'अपडेट-पैकेज-रीइंस्टॉल' आपके प्रोजेक्ट – mhesabi

+1

चेतावनी के अनुसार लंबा समय लगेगा - इस कमांड का उपयोग करके मेरे अधिकांश संदर्भ अमान्य हो गए और मुझे फिर से समाधान फिर से बनाना पड़ा। – Dementic

0

मैं भी इस तरह की समस्याओं था। मैं सिर्फ दो बातें किया:

  • अद्यतन System.Web.Mvc और पिछले संस्करण (5.2.3)
  • करने के लिए सभी निर्भरता के पुनर्निर्माण सभी समाधान (मैं का उपयोग कर किया "समाधान ->साफ समाधान ", फिर" समाधान ->बिल्ड समाधान ")
संबंधित मुद्दे