تتصرف Visual Studio 2008 و 2010 بشكل مختلف عند الرجوع إلى التجميعات في نظام الملفات؟

StackOverflow https://stackoverflow.com/questions/3446637

سؤال

أرى ظاهرة غريبة في 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 هذه الاعتماد وتستخدم منطق العودة.

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