سؤال

لدي حلان مختلفان ، حيث قد تعتمد بعض المشاريع على مخرجات المشاريع في حلول أخرى.لإدارة هذا ، لقد تم نسخ ملفات دل من/ بن/مجلد في كل مشروع إلى موقع مكتبة مشتركة بعد بناء ، ومن ثم نسخ / الرجوع إليها من هناك إلى المشروع التابع.

ومع ذلك ، مع زيادة حجم حل المكتبة ، يميل هذا إلى أن يصبح غير قابل للاستمرار.يتم إنفاق الكثير من وقتي عبور الدلائل الحل في مستكشف ويندوز تبحث عن /بن/ المجلدات ، ومحاولة لمعرفة أي واحد ، أو أي منها ، من ملفات دل من كل واحد أحتاج.

هل هناك أي طريقة لإعطاء فيسوال ستوديو تلميحا أريد الكل مشاريع في حل لديك نفس دليل الإخراج?على سبيل المثال ، أ / بن / مجلد مباشرة تحت المجلد الحل ، حيث الكل وضعت المشاريع انتاجها.

إذا كان ذلك ممكنا ، أود تحقيق ذلك بدون أحداث ما بعد الإنشاء المشفرة التي تنسخ الملفات ، لأن ذلك سيفشل إذا قام أحد مخرجات المشروع بتغيير اسم الملف أو إضافة ملف آخر.أود بدلا من تغيير موقع دليل الإخراج الفعلي-موقع $(أوتدير) ، إذا صح التعبير.

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

المحلول

يمكنك تعيين دليل الإخراج في كل خصائص المشروع.

انقر بزر الماوس الأيمن على المشروع ، حدد Properties

بالنسبة إلى ج# ، فهي واحدة من Build صفحة الملكية ، تحت Output, Output directory.

في VB.Net المشاريع ، هو على Compile علامة التبويب ، في مربع النص في الأعلى.

نصائح أخرى

أعلم أنك قلت أنك لا تريد استخدام أحداث إنشاء المنشورات ، لكن السبب وراء عدم إثارة اهتمامي.يبدو أنك قد تكون من الصعب ترميز اسم .دلل في مشاركتك بناء الحدث.يمكن تجنب ذلك بسهولة.

xcopy "$(TargetDir)*" "c:\common\" /Y

ال * من شأنه أن يسبب فقط كل شيء في بن / التصحيح / مجلد للحصول على نسخ إلى المجلد المشترك الخاص بك.هل يمكن أيضا مجرد نسخ دلز إذا كنت تريد.أو ، إذا كنت تستخدم $(TargetPath), ، عليك نسخ فقط دل 1 الذي هو نتيجة للمشروع ، وليس أي تبعيات أخرى ذات الصلة.

تحديث

الطريقة التي نقوم بها هي أن كل مجلد بن كامل يتم نسخه إلى ملف الفرعيةمجلد.لنفترض أن لديك 2 مشاريع, WebUtil و HtmlParser, ، حيث يعتمد ويبوتيل على هتملبارسر.لكلا المشروعين ، استخدم xcopy "$(TargetDir)*" "c:\common\$(ProjectName)" /Y.هذا سوف يخلق c:\common\WebUtil \ و c:\common\HtmlParser.في ويبوتيل ، إضافة مرجع إلى c:\common\HtmlParser\HtmlParser.دلل.سيكون هناك الآن 2 نسخ من هتملبارسر.دلل في c:\common.

c:\common\HtmlParser\HtmlParser.دلل / / بناء أحدث.c:\common\WebUtil\HtmlParser / / ماذا كان أحدث بناء عندما تم بناء ويبوتيل

هذا له كل أنواع المزايا.إذا قمت بتغيير أبي من هتملبارسر ، وسوف تستمر ويبوتيل للعمل ، لأنه سيكون لها هتملبارسر القديمة.دل حتى محاولة إعادة بناء ويبوتيل (عند هذه النقطة سوف تحصل على أخطاء بناء بسبب أبي تغيرت).

الآن ، إذا حصل مشروع 3 في المزيج الذي يعتمد على ويبوتيل ، وكنت تستخدم بعض جزء من ويبوتيل الذي يعرض الطبقات في هتملبارسر ، ثم ستحتاج إلى إضافة مرجع إلى كلاهما مشاريع من مشروعك الجديد.عند إضافة مرجع إلى هتملبارسر.دلل ، استخدم واحد في c:\common\WebUtil.يمكنك القيام بذلك لأنك فقط بما في ذلك كشرط ضروري من ويبوتيل.الآن سيكون لديك دائما إصدار هتملبارسر.دلل يطابق الإصدار الحالي من ويبوتيل.دلل.

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

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