2013-02-13 18 views
9

परियोजना स्थानीय स्तर पर ठीक चलाता है, अपने ही जब प्रकाशित मैं निम्नलिखित त्रुटि मिलती है:MVC4 Azure प्रकाशन त्रुटि - फ़ाइल या विधानसभा लोड नहीं कर सका System.Web.Razor '

' फ़ाइल या विधानसभा लोड नहीं कर सका प्रणाली। Web.Razor 'या इसकी निर्भरताओं में से एक। स्थित असेंबली की स्पष्ट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)

पिछले कुछ घंटों googling समस्या हो कि एक nuget पैकेज मैं परियोजना के संदर्भ में जोड़ा उस्तरा 1 और मेरे उस्तरा 2 dll ओवरराइट कर रहा है खर्च करने के बाद। मैंने रेज़र 2.0.0.0 डीएल को 1 के बजाय रिफर्न्स में कॉपी करने का प्रयास किया है लेकिन त्रुटि बनी हुई है। यह जहां संघर्ष विस्तृत निर्माण उत्पादन में दिखाया गया है है:


"System.Web.Razor, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35" और "सिस्टम के बीच एक संघर्ष नहीं था। Web.Razor, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35 "। 1> "System.Web.Razor, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35" चुना गया था क्योंकि यह प्राथमिक था और "System.Web.Razor, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35 "नहीं था। 1> संदर्भ जो "System.Web.Razor, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35" पर निर्भर करता है [सी: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft ASP.NET \ ASP.NET वेब पेज \ v1 .0 \ विधानसभाओं \ System.Web.Razor.dll]। 1> सी: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft ASP.NET \ ASP.NET वेब पेज \ v1.0 \ Assemblies \ System.Web.Razor.dll 1> प्रोजेक्ट फ़ाइल आइटम जिसमें संदर्भ "C: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft ASP.NET \ ASP.NET वेब पेज \ v1.0 \ Assemblies \ System.Web.Razor.dll "। 1> System.Web.Razor, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, सार्वजनिकKeyToken = 31bf3856ad364e35, प्रोसेसर आर्किटेक्चर = MSIL 1> संदर्भ जो System System.eb.Razor, संस्करण = 2.0.0.0, संस्कृति = तटस्थ पर निर्भर करता है, PublicKeyToken = 31bf3856ad364e35 "[C: \ Users \ जैक \ SkyDrive \ LessonUp.Current \ संकुल \ RazorEngine.3.0.8 \ lib \ net40 \ System.Web.Razor.dll]। 1> C: \ Users \ जैक \ SkyDrive \ LessonUp.Current \ संकुल \ Microsoft.AspNet.WebPages.2.0.20710.0 \ lib \ net40 \ System.Web.WebPages.Razor.dll 1> परियोजना फ़ाइल आइटम शामिल हैं जिसके कारण संदर्भ "सी: \ उपयोगकर्ता \ जैक \ SkyDrive \ LessonUp.Current \ packages \ Microsoft.AspNet.WebPages.2.0.20710.0 \ lib \ net40 \ System.Web.WebPages.Razor.dll"। 1> System.Web.Mvc, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL 1> रीकैप्चा


वहां से यह उस्तरा 2 के आधार पर अन्य संकुल की सूची जारी है।

प्रोजेक्ट में जोड़े गए पैकेज थे; रिकैप्चा, रिकैप्चा.एमवीसी मॉडेल और पोस्टल। क्या किसी को पता है कि इसे हल करने के लिए मैं क्या कदम उठा सकता हूं? मुझे बताएं कि क्या कोई और जानकारी है जो मैं दे सकता हूं जिससे समाधान हो सकता है।

उत्तर

0

अंत में nuget से फिर से इस छाँटे गए, डाउनलोड razor2.0 मिला है। वेब कॉन्फिगर को सॉर्ट करने और निर्भरता त्रुटियों को ठीक करने के लिए समझा जाता है। बिना किसी समस्या के आज़ूर पर चल रहा है और चल रहा है।

5

सुनिश्चित करें कि 2.0 dll जिक्र किया गया और स्थानीय = सच नकल है, तो एक विधानसभा web.config में अनुप्रेषित बाध्यकारी जोड़ने का प्रयास करें:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
</assemblyBinding? 
+0

वहाँ काम किया निम्नानुसार पहले से ही एक असेंबली बाध्यकारी था: मैंने इसे आपके द्वारा पोस्ट की गई चीज़ों में बदल दिया और त्रुटि वही रही। मैंने संदर्भ गुणों की भी जांच की और स्थानीय प्रतिलिपि पहले ही "सत्य" पर सेट की गई थी। कोई अन्य विचार? – jakhicks

+0

धन्यवाद। 'कॉपी स्थानीय = सच' सेट करने के लिए मेरे लिए काम किया। ऐसा लगता है कि यह नई परियोजनाओं के लिए डिफ़ॉल्ट होना चाहिए, खासकर जब nuget के साथ संदर्भ जोड़ना। – ps2goat

+0

मैंने पुराने संस्करण को 1.0-3.0 और नया संस्करण 4.0 बदलने के लिए बदल दिया - यह VS2013 में MVC4 में पुरानी VS2012 MVC3 प्रोजेक्ट को अपडेट करने के बाद मेरे लिए समस्या का समाधान किया। के रूप में यहाँ प्रलेखित – ppumkin

0

अपनी परियोजना फ़ाइल और web.config जांच करके देखें कि अगर वे एक NuGet पैकेज द्वारा munged किया गया है। एक ज्ञात समस्या बच्चा postal 0.8.0 है। यह रेजोरवर्सन के बीटा संस्करण पर निर्भरता के रूप में खींचता है (भले ही आपने केवल स्थिर दिखाने के लिए फ़िल्टर किया हो)।यहां तक ​​कि यदि आप नवीनतम संस्करण में RazorVersion को अपडेट करते हैं, जो स्थिर है, तो आपकी प्रोजेक्ट फ़ाइल System.Web.Razor संस्करण 1 को संदर्भित करती है, और आपके web.config में गलत रनटाइम असेंबली बाइंडिंग है।

को ठीक करने के लिए, अपनी प्रोजेक्ट फ़ाइल और web.config पर एक ताजा, खाली एमवीसी 4 प्रोजेक्ट के खिलाफ एक अंतर करें। फिर मूल प्रोजेक्ट फ़ाइल से System.Web.Razor के लिए सही Reference तत्व पर प्रतिलिपि बनाएँ। Web.config में, तत्व System.Web.Razor के लिए हटाएं।

यहां आपकी परियोजना फ़ाइल के लिए टीएलडीडी (बहुत आलसी, भिन्न नहीं है) टेक्स्ट है। उम्मीद है कि जब तक यह स्निपेट पुराना हो, तब तक अंतर्निहित कारण तय किए जाएंगे।

<Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> 
    <Private>True</Private> 
    <HintPath>..\packages\Microsoft.AspNet.Razor.2.0.20715.0\lib\net40\System.Web.Razor.dll</HintPath> 
</Reference> 

(दुर्भाग्य से, आप इस स्थापना रद्द करने और NuGet के साथ फिर से स्थापित करने से ठीक नहीं कर सकते, क्योंकि आप इस तरह की पहली डाक के रूप में हमलावर निर्भर पैकेज की स्थापना रद्द करना होगा, जो जब आप फिर से स्थापित फिर से टूट जाएगा बातें यह।)

+0

डाक के लिए, वहाँ अब एक [बग रिपोर्ट] है (https://github.com/andrewdavey/postal/मुद्दों/49)। –

1

मुझे एक एमवीसी 4 परियोजना में डाक 0.8.0 के साथ एक ही समस्या थी। जब आप NuGet के साथ पोस्टल इंस्टॉल करते हैं तो यह System.Web.Razor 2.0System.Web.Razor 1.0 के साथ बदल देता है। मुझे System.Web.Razor 1.0 का संदर्भ हटाना पड़ा और फिर System.Web.Razor 2.0 में वापस जोड़ा गया। System.Web.Razor के लिए गुणों में आपको स्थानीय स्थानीयTrue पर सेट करना होगा और निश्चित रूप से परियोजना का पुनर्निर्माण करना होगा। एक बार जब मैंने ऐसा किया तो VS2012 ने System.Web.Razor.dll को तैनात बिन निर्देशिका में कॉपी किया और समस्या साफ़ हो गई।

डाक इन निर्भरताओं को web.config में भी जोड़ता है। मैंने उन्हें हटा दिया और यह अभी भी ठीक से काम करता है।

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="2.0.0.0" /> 
</dependentAssembly> 
<dependentAssembly> 
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> 
</dependentAssembly> 
<dependentAssembly> 
    <assemblyIdentity name="RazorEngine" publicKeyToken="9ee697374c7e744a" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-3.0.8.0" newVersion="3.0.8.0" /> 
</dependentAssembly> 
0

मूल ..

<dependentAssembly> 
    <assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 

किसी कारण NewVersion विशेषता के लिए 2.0.0.0 संस्करण के लिए स्थापित किया गया था, जबकि dll 3.0.0.0

<dependentAssembly> 
    <assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
    </dependentAssembly> 

का था से यह

संबंधित मुद्दे