عنوان:

‫به‌روز رسانی اسمبلی‌های خارجی


نویسنده: میثم نوایی
تاریخ: ۱۳۹۳/۰۷/۲۷ ۱۶:۲۵
آدرس: www.dntips.ir
در اکثر شرکت‌های بزرگ و متوسط نرم افزاری، بخش مشترکی از پروژه‌ها تحت عنوان فریم ورک و یا پروژه‌های مشترک (Common) از پروژه‌های جاری فاکتور گرفته میشود و ارتباط با آنها با ارجاعی (Reference) به اسمبلی آنها انجام مشود.
اما مشکل همیشگی این است که برای حفظ استقلال، مستقیما از پروژه‌های جاری به اسمبلی‌های پایه ارجاع داده نمی‌شود؛ چون ممکن است بنا بر پایسته بودن نسخه پروژه جاری، قصد نداشته باشیم همیشه آخرین ورژن اسمبلی‌های خارجی را دریافت کنیم، بلکه ارجاعی به اسمبلی‌ها در یک پوشه در خود پروژه انجام میشود و شما بعد از هر بار تغییر در فریم ورک، باید اسمبلی‌های جدید را به داخل پوشه، در تک تک پروژه‌های جاری تان کپی کنید.
برای خلاصی از این کار مدام و تکراری می‌توانید از یک Batch فایل شبیه کد زیر استفاده کنید:
xcopy /s /y D:\Project\Framework\Framework.Web\bin\Debug\Framework.dll D:\Project\Current\DependentDLL
xcopy /s /y D:\Project\Framework\Framework.Web\bin\Debug\Framework.Common.dll D:\Project\Current\DependentDLL
xcopy /s /y D:\Project\Framework\Framework.Web\bin\Debug\Framework.Business.dll D:\Project\Current\DependentDLL
xcopy /s /y D:\Project\Framework\Framework.Web\bin\Debug\Framework.Web.dll D:\Project\Current\DependentDLL
کافی است این دستورات را در Note Pad کپی کنید و سپس با پسوند bat و مثلا با نام Update ذخیره کنید.
این فایل را در پوشه اسمبلی‌های وابسته در پروژه‌های جاری تان کپی کنید و از این به بعد هر وقت خواستید آخرین ورژن اسمبلی‌های خارجی را دریافت کنید دوبار روی این فایل کلیک کنید.
برای شخصی سازی بیشتر دستورات انتقال فایل در Batch فایل‌ها   اینجا  و  اینجا   را بخوانید.

نظرات

  • محسن موسوی در ۱۳۹۳/۰۷/۲۸ ۱۰:۲۱
    البته استفاده از Nuget به صورت محلی گزینه‌ی بهتری هست. نوگت راه حل‌های مختلفی برای این کار ارئه میده. بصورت یک پوشه اشتراکی و یا ایجاد یک سرویس نوگت.
    • میثم نوایی در ۱۳۹۳/۰۷/۲۸ ۱۴:۱۷
      بله استفاده از روش مطروحه شما استاندارد و اصولی‌تر میباشد.
      راهکار من سر راست‌تر و سریع‌تر میباشد و برای افراد مبتدی کاربرد بیشتری دارد به اضافه اینکه خیلی از اوقات اسمبلی‌های خارجی در پروژه مدام دستخوش تغییر مسیر،تغییر نام و یا حتی ممکن است بکلی از پروژه کنار گذاشته شوند.