تتصرف Visual Studio 2008 و 2010 بشكل مختلف عند الرجوع إلى التجميعات في نظام الملفات؟
سؤال
أرى ظاهرة غريبة في Visual Studio 2010.
إعداد مشروعي هو هذا (لقد ورثت هذا - لا يمكنني تغييره في أي وقت قريب ، لسوء الحظ :-():
تطبيق WinForms يستخدم تقارير Crystal x (V10) كمحرك للإبلاغ ؛ تم تثبيت الإصدار الكامل CR X Developer على صندوق DEV الخاص بي
العديد من تطبيقات WebForms التي تستخدم تقارير Crystal الحادي عشر (v11) كمحرك للإبلاغ - لا يمكن تثبيت الإصدار الكامل CR XI ، لأنه يشتبك مع إصدار Cr X Dev ....
من أجل جعل الأشياء تعمل على خادم البناء الخاص بنا ، قمت أيضًا بإنشاء ملف Library
المجلد داخل دليل مشروع تطبيق WinForms مع ملفات وقت التشغيل CR X ، وكذلك أ Library
المجلد داخل دليل مشروع تطبيق الويب مع ملفات وقت تشغيل CR XI.
في VS 2008 ، تمكنت من اختيار التجميعات اللازمة من مجلد المكتبة المعني في مشاريع WinForms الخاصة بي (العديد من مكتبات الفصل وما إلى ذلك) ، وفي تطبيقات الويب الخاصة بي. كل شيء يعمل بشكل رائع.
عندما قمت بالتحديث إلى Visual Studio 2010 ، الآن فجأة أرى:
في تطبيقات WinForms الخاصة بي ، يتم تحديث جميع الإشارات إلى ملفات وقت التشغيل cr x ليس ماذا اريد! لا يساعد ذلك إذا قمت بحذف هذه المراجع وأعيد إضافةها مرة أخرى عن طريق التصفح إلى
Library
المجلد - عندما أختارهم ، يبدو أن VS2010 يحولها تلقائيًا إلى مراجع GAC مرة أخرى ...في تطبيقات الويب الخاصة بي ، تزداد الأمور سوءًا: عندما أختار مجموعات وقت تشغيل CR XI من
Library
مجلد ، مرة أخرى ، يبدو أن VS2010 بشكل تلقائي يكتشف وجود ملفات مماثلة (الاسم نفسه ، ولكن الإصدارات المختلفة) في GAC وتستخدم هذه الملفات بدلاً من ذلك - الآن لا تعمل تطبيقات الويب الخاصة بي .....
ما الذي يحدث مع VS 2010 هنا ؟؟ لماذا لا يمكن أن تترك اختياراتي بمفردها ودعني أختار ملفات وقت التشغيل من أ Library
المجلد بدلا من الإصرار على الذهاب إلى GAC ؟؟ ما الذي تغير بين VS 2008 و VS 2010 في هذا الصدد ؟؟ هل لدى أي شخص أي رؤى في هذا ؟؟
المحلول
قد يكون من المفيد لأي منهما
(1) انتقل إلى الأدوات Options Project & Solutions Build & Run وتغيير فعل MSBUILD إلى "التشخيص" ثم الإنشاء وفي نافذة الإخراج ، انظر كيف يعمل منطق دقة مرجع MSBuild لتلك التجميعات. هذا هو ، إذا لم تفعل VS بالفعل شيء مثير للسخرية لملف .csproj الأساسي
(2) قارن XML في ملف مشروع VS2008 مقابل ملف مشروع VS2010 لمعرفة ما في <Reference>
العقد
تخمين المضاربة البرية: يستهدف مشروع VS2010 ".NET 4.0 Client" (بدلاً من ".NET 4.0 (الإطار الكامل)" ، وتحتاج المكتبات إلى الإطار الكامل ، وترى MSBuild هذه الاعتماد وتستخدم منطق العودة.