44

मैं DotNetOpenAuth (System.Web.Mvc संस्करण 1.0.0.0 का संदर्भ जो) दृश्य स्टूडियो में एक Mvc 3.0.0.0 परियोजना में उपयोग कर रहा हूँ बाइंडिंग 2010विधानसभा पुनर्निर्देशन और कोड विश्लेषण

मैं विधानसभा बाध्यकारी पुनर्निर्देशन उपयोग कर रहा हूँ इस प्रकार है: -

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

सब कुछ ठीक काम करता है, कोड विश्लेषण जो मुझे निम्न त्रुटियों देता है को छोड़कर: -

CA0001: निम्न त्रुटि का सामना करना पड़ा था, जबकि पढ़ने मॉड्यूल एक्स: विधानसभा संदर्भ आर नहीं किया जा सकता विकसित: System.Web.Mvc, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35।

और

CA0058: संदर्भित विधानसभा 'System.Web.Mvc, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' नहीं पाया जा सका। इस असेंबली को विश्लेषण के लिए जरूरी है और इसका संदर्भ दिया गया था: एक्स

असेंबली बाध्यकारी पुनर्निर्देशन का सम्मान करने के लिए कोड विश्लेषण उपकरण प्राप्त करने का कोई तरीका है?

उत्तर

63

बस एक छोटे से अधिक सटीक जवाब के साथ पूरक के लिए:

fxcopcmd.exe /assemblyCompareMode:StrongNameIgnoringVersion 

या प्रत्येक निर्माण विन्यास की संपत्ति समूह के लिए अपनी दृश्य स्टूडियो परियोजना फ़ाइल को संशोधित, जैसे:

आप या तो साथ FxCopCmd.exe चलाने की आवश्यकता यह:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    ... 
    <CodeAnalysisAdditionalOptions>/assemblyCompareMode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions> 
</PropertyGroup> 
+0

धन्यवाद।मैं नीचे लाइन को शामिल किया है, 'CodeAnalysisAdditionalOptions>/assemblyCompareMode: StrongNameIgnoringVersion' '<विन्यास स्थिति के तहत =" '$ (विन्यास)' == '' "> डीबग' और '' और '

+1

दुर्भाग्य से, यह किसी कारण से मेरे लिए काम नहीं करता है; मुझे अब भी वही त्रुटि मिलती है। –

+0

आप शानदार @peter_raven हैं! –

6

कुछ पृष्ठभूमि जानकारी के लिए http://davesbox.com/archive/2008/06/10/reference-resolution-changes-in-code-analysis-and-fxcop-part-1.aspx और http://davesbox.com/archive/2008/06/14/reference-resolutions-changes-in-code-analysis-and-fxcop-part-2.aspx देखें।

वीएस -2010/एफएक्सकॉप 10.0 में, fxcopcmd.exe के लिए एक नया/असेंबली कॉम्पारेडोड कमांड लाइन स्विच है जो आपको .config फ़ाइल के साथ बिना किसी त्रुटि के तुलना मोड को निर्दिष्ट करने की अनुमति देता है। आप CodeAnalysisAdditionalOptions MSBuild प्रॉपर्टी का उपयोग कर इसे वीएस प्रोजेक्ट में निर्दिष्ट कर सकते हैं।

+2

लिंक मर चुका है – Adi

4

पीटर_रावेन समाधान के अतिरिक्त आप टीएफएस बिल्ड के साथ कोड विश्लेषण कार्य करने के विकल्प को निर्दिष्ट कर सकते हैं। "MSBuild तर्क" में निर्माण विकल्प, प्रक्रिया टैब, उन्नत श्रेणी में इस जोड़ें:

/p:CodeAnalysisAdditionalOptions=/assemblyCompareMode:StrongNameIgnoringVersion 
+0

यह मेरी टीएफएस बिल्ड त्रुटि के लिए काम किया, धन्यवाद! – JLWarlow

1

उपयोग इस करता है, तो आप कोड विश्लेषण बंद करने के लिए की जरूरत है।

विजुअल स्टूडियो 2012 में,

  1. सही अपनी परियोजना पर क्लिक करें और पॉपअप मेनू से "गुण" का चयन करें। "कोड विश्लेषण" टैब पर
  2. क्लिक करें और सही का निशान हटाएँ "बिल्ड पर कोड विश्लेषण सक्षम करें"

स्वच्छ और बनाएँ। कोड विश्लेषण त्रुटि दूर जाना चाहिए।

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