برای رفع این موارد به NuGet Package Restore وارد شوید.
به ویژوال استودیو اجازه دهید بستههای NuGet را در صورت لزوم احیا کند
پیش از آنکه بتوانیم از قابلیت Package Restore استفاده کنیم باید آن را روی ماشین خود فعال کنیم. این کار روی هر ماشین باید انجام شود (per-machine requirement). بدین منظور به منوی Tools -> Options -> Package Manager بروید.
در دیالوگ باز شده تنظیمات مربوطه را مانند تصویر زیر بروز رسانی کنید.
حال که ماشین ما برای بازیابی خودکار بستههای NuGet پیکربندی شده است، باید این قابلیت را برای Solution مورد نظر هم فعال کنیم.
فعال سازی NuGet Package Restore برای پروژهها
بدین منظور روی Solution کلیک راست کنید و گزینه Enable Package Restore را انتخاب نمایید.
این کار ممکن است چند ثانیه زمان ببرد. پس از آنکه ویژوال استودیو پردازشهای لازم را انجام داد، میتوانید ببینید که پوشه جدیدی در مسیر ریشه پروژه ایجاد شده است.
همانطور که میبینید فایلی با نام NuGet.exe در این پوشه قرار دارد که باید به سورس کنترل آپلود شود. هنگامیکه شخصی پروژه شما را از سورس کنترل دریافت کند و بخواهد پروژه را Build کند، بستههای مورد نیاز توسط این ابزار بصورت خودکار دریافت و نصب خواهند شد.
مرحله بعد حذف کردن تمام بستههای NuGet از سورس کنترل است. برای اینکار باید فایل gitignore. را ویرایش کنید. فرض بر این است که سورس کنترل شما Git است، اما قواعد ذکر شده برای دیگر فریم ورکها نیز صادق است. تنها کاری که باید انجام دهید این است که به سورس کنترل خود بگویید چه چیز هایی را در بر گیرد و از چه چیزهایی صرفنظر کند.
ویرایش فایل gitignore. برای حذف بستهها و شامل کردن NuGet.exe
یک پروژه معمولی ASP.NET MVC 5 که توسط قالب استاندارد VS 2013 ایجاد میشود شامل 161 فایل از بستههای مختلف میشود (در زمان تالیف این پست). این مقدار قابل توجهی است که حجم زیادی از اطلاعات غیر ضروری را به مخزن سورس کنترل اضافه میکند. با استفاده از نسخه پیش فرض فایل gitignore. (یا فایلهای مشابه دیگر برای سورس کنترلهای مختلف مثل TFS) تعداد فایل هایی که در کل به مخزن سورس کنترل ارسال میشوند بیش از 200 آیتم خواهد بود. قابل ذکر است که این تعداد فایل شامل فایلهای اجرایی (binary) و متعلق به ویژوال استودیو نیست. به بیان دیگر نزدیک به 75% از فایلهای یک پروژه معمولی ASP.NET MVC 5 که توسط VS 2013 ساخته میشود را بستههای NuGet تشکیل میدهد، که حالا میتوانند بجای ارسال شدن به مخزن سورس کنترل، بصورت خودکار بازیابی و نصب شوند.
برای حذف این فایلها از سورس کنترل، فایل gitignore. را ویرایش میکنیم. اگر از سورس کنترلهای دیگری استفاده میکنید نام این فایل hgignore. یا tfsignore. یا غیره خواهد بود. محتوای فایل شما ممکن است با لیست زیر متفاوت باشد اما جای نگرانی نیست. تنها تغییرات اندکی بوجود خواهیم آورد و مابقی محتویات فایل مهم نیستند.
چشم پوشی از پوشه Packages
فایل gitignore. را باز کنید و برای نادیده گرفتن پوشه بستههای NuGet در سورس، خط زیر را به آن اضافه کنید.
packages*/
استثنایی برای در نظر گرفتن NuGet.exe ایجاد کنید
به احتمال زیاد فایل gitignore. شما از فایل هایی با فرمت .exe چشم پوشی میکند. برای اینکه بستههای NuGet بتوانند بصورت خودکار دریافت شوند باید استثنایی تعریف کنیم. فایل gitignore. خود را باز کنید و به دنبال خط زیر بگردید.
*.exe
*.exe !NuGet.exe
انجام مرحله بالا انتخابی (optional) است. اگر کسی که پروژه را از مخزن سورس کنترل دریافت میکند قابلیت Package Restore را روی Solution فعال کند ابزار NuGet.exe دریافت میشود. اما با انجام این مراحل دیگر نیازی به این فعالسازی نخواهد بود، پس در کار اعضای تیم هم صرفه جویی کرده اید.
اطلاع رسانی به اعضای تیم و مشتریان بالقوه
دیگر نیاز نیست بستههای NuGet را به مخزن سورس کنترل ارسال کنیم. اما باید به مخاطبین خود اطلاع دهید تا پیکربندیهای لازم برای استفاده از قابلیت Package Restore را انجام دهند (مثلا در فایل README.txt پروژه).