إعادة توجيه التجميع وتحليل الكود
-
27-09-2019 - |
سؤال
أنا أستخدم dotnetopenauth (الذي يشير إلى system.web.mvc الإصدار 1.0.0.0) في مشروع MVC 3.0.0.0 في Visual Studio 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: تمت مواجهة الخطأ التالي أثناء قراءة الوحدة النمطية X: لا يمكن حل مرجع التجميع: System.Web.MVC ، الإصدار = 1.0.0.0 ، الثقافة = محايد ، publickeytoken = 31BF3856AD364E35.
و
CA0058: لا يمكن العثور على التجميع المرجعية 'System.Web.MVC ، الإصدار = 1.0.0.0 ، الثقافة = محايد ، publickeytoken = 31BF3856AD364E35'. هذا التجميع مطلوب للتحليل وتم الإشارة إليه من قبل: X.
هل هناك طريقة للحصول على أداة تحليل التعليمات البرمجية لاحترام إعادة توجيه التجميع؟
المحلول
فقط لتكملة إجابة أكثر دقة:
تحتاج إما إلى تشغيل fxcopcmd.exe مع:
fxcopcmd.exe /assemblyCompareMode:StrongNameIgnoringVersion
أو تعديل ملف مشروع Visual Studio الخاص بك لكل مجموعة خاصية تكوين البناء ، مثل هذا:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
...
<CodeAnalysisAdditionalOptions>/assemblyCompareMode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>
</PropertyGroup>
نصائح أخرى
نرى http://davesbox.com/archive/2008/06/10/reference-resolution-changes-in-code-analysis-and-fxcop-bart-1.aspx و http://davesbox.com/archive/2008/06/14/reference-resolutions-changes-in-code-analysis-and-fxcop-bart-2.aspx لقليل من المعلومات الأساسية.
في VS2010 /FXCOP 10.0 ، يوجد مفتاح سطر أوامر جديد /AssemblyComParemode لـ fxcopcmd.exe يتيح لك تحديد وضع المقارنة دون التغلب على ملف .config. يمكنك تحديد هذا في Project VS باستخدام خاصية CodeAnalySyAdditionalOptions MSBuild.
بالإضافة إلى حل PETER_RAVEN ، يمكنك تحديد الخيار لجعل تحليل التعليمات البرمجية يعمل مع TFS Build. أضف هذا في خيارات الإنشاء ، علامة تبويب العملية ، الفئة المتقدمة في "حجج MSBuild":
/p:CodeAnalysisAdditionalOptions=/assemblyCompareMode:StrongNameIgnoringVersion
استخدم هذا إذا كنت بحاجة إلى إيقاف تشغيل تحليل التعليمات البرمجية.
في Visual Studio 2012 ،
- انقر بزر الماوس الأيمن على مشروعك وحدد "الخصائص" من القائمة المنبثقة.
- انقر فوق علامة التبويب "تحليل الكود" وإلغاء تحديد "تمكين تحليل التعليمات البرمجية على البناء"
تنظيف وبناء. يجب أن يزول خطأ تحليل الكود.