در ابتدا بهتر است با فایلهای packages.config و repositories.config آشنا شویم.
فایل packages.config در ازای هر پروژه ایجاد میشود و در این فایل اطلاعات package هایی که به پروژه اضافه شده اند نگهداری میشوند.
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" />
<package id="RavenDB.Client" version="2.0.2375" targetFramework="net45" />
</packages>
فایل repositories.config در فولدر packages در مسیر اصلی solution وجود دارد، در این فایل مسیر فایلهای packages.config هر پروژه نگداری میشود.
<?xml version="1.0" encoding="utf-8"?>
<repositories>
<repository path="..\Application\Test\packages.config" />
<repository path="..\ViewModel\Test\packages.config" />
</repositories>
1- ابتدا فولدر packages را از سورس کنترل حذف کنید، checkin کنید.
حال هر شخصی که پروژه را get میکند نیاز است با توجه به مطالب و روشهای گفته شده در بالا -به ویژوال استودیو اجازه دهید بستههای NuGet را در صورت لزوم احیا کند- یا -فعال سازی NuGet Package Restore برای پروژهها- packageها را دریافت کند. بعد از انجام این کار فولدر packages و فایل repositories.config در local هر کاربر ایجاد میشوند.
توجه شود این فولدر و محتویات آن از طریق Add Item to folder دوباره به سورس کنترل اضافه نشود.
2- یا میتوانید ابتدا محتویات فولدر packages به غیر از فایل repositories.config را از سورس کنترل پاک کنید (فولدرها و فایلهای package ها ). به فایل repositories.config برای مسیر فایلهای packages.config هر پروژه نیاز داریم .
شما فولدر packages و فایل repositories.config را checkin کنید (در فولدر packages جز فایل repositories.config فایل یا فولدر دیگری وجود نداشته باشد ).
و در هر بار Build کردن موجود بودن فایلهای package دوباره چک میشوند و اگر موجود نباشند، دریافت میشوند.
نکته مهم این است که اگر Build definition تعریف کرده باشید نیاز به تنظیمات در سرور build برای دریافت packageها دارید.