سؤال

نحن نستخدم Cruse Control لإدارة عملية الإنشاء الخاصة بنا. أثناء تحويل مشاريع VS2008 إلى VS2010 ، نترك الإطار المستهدف المحدد عند 3.5 لمشاريع مكتبة الويب والفصول الدراسية.

في هذه المرحلة ، نحن لا نمر وتحويل جميع حلولنا إلى VS2010 ؛ ليس إذا لم يكن لدينا ذلك.

لقد قمت مؤخرًا بتحديث ملفات مشروع MSBuild التي تستخدمها التحكم في التطواف للإشارة إلى MSBuild 4.0 لذلك ستكون عملية البناء لدينا قادرة على بناء مشاريع VS2010.

C: Windows Microsoft.net Framework v4.0.30319 msbuild.exe

كان كل شيء على ما يرام حتى تم ارتكاب مشروع ويب كان يستهدف إطار 4.0. عند هذه النقطة ظهر هذا الخطأ:

CS0433: Type 'System.Web.Routing.RouteCollection "موجود في كليهما C: Windows Microsoft.net Assembly gac_32 system.web v4.0_4.0.0.0__b03f5f7f11d50a3a system.web.dll و c: program files (x86) مرجعية microsoft framework v3.5 System.Web.Routing.dll in Global.asax.cs (15 ، 43)

عند هذه النقطة ، أصبحت على دراية بـ Windows/Microsoft.NET/Assembly مجلدات.

الآن ... جميع مشاريع MSBuild ، على الرغم من أنها تستخدم MSBuild 4.0 ، لا يزال لدى إصدار الأدوات في 3.5. فلماذا كان هناك 3.5 بناء مستهدف ينظر إلى مجلدات التجميع 4.0 الجديدة وإيجاد هذا الصراع؟ ربما لأنني كنت أستخدم MSBuild 4.0. ولكن إذا كان بإمكاني تغيير الأدوات التي يستخدمها MSBuild ، فأنت تعتقد أنه يمكنني إخباره لاستهداف 3.5 دون القلق بشأن هذه النزاعات المحتملة.

لحل هذه المشكلة ، ذهبت إلى ملفات مشروع MSBuild ذات الصلة التي تستخدم التحكم في التطواف وتغيير أدواتها إلى 4.0. تم تمرير هذا خطأ الصراع. ولكن الآن في كل مرة تحاول بناء مشروع في حل لم نقم بتحويله بعد إلى مشروع VS2010 ، فإنه ينكسر بخطأ مثل هذا:

myproject.csproj في بعضها: lc0000: 'لم يستطع تحميل الملف أو التجميع أو أحد تبعياته. تم تصميم هذا التجميع بواسطة وقت تشغيل أحدث من وقت التشغيل الذي تم تحميله حاليًا ولا يمكن تحميله. " في LC (0 ، 0)

إذا فتحت الحل الذي يحتوي على هذا المشروع في Visual Studio 2010 وقمت بالتحويل ، وقم بإنشائه وارتكاب ذلك وأجبر على بناء آخر ، فقد اجتاحت هذا الخطأ فقط لأجد أن مشروعًا آخر لم يتم تحويله بعد يرمي نفس الخطأ.

الآن أنا متأكد من استخدام MSBuild 4.0 وللاستهداف الحقيقي إطار 4.0. لماذا لا تستطيع 4.0 بناء 3.5 مشاريع أو مشاريع حلول VS2008؟

هل كانت مفيدة؟

المحلول

تكمن المشكلة في أنك قمت بترحيل جزء من مشاريعك إلى Visual Studio 2010. أي مشروع 2008 يشير إلى مشروع 2010 (حسب مرجع المشروع) سيمنحك هذا الخطأ في وقت الترجمة. حاول تحديث جميع ملفات .csproj حتى عام 2010 وحاول إعادة البناء مرة أخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top