مدیریت بسته های NuGet در VSTS

یکشنبه 6 اسفند 1396

NuGet می تواند در ساخت، توزیع و استفاده ی پکیج ها مورد استفاده قرار گیرد. چگونگی مدیریت بسته های NuGet را درVisual Studio Team System بیاموزید.

 مدیریت بسته های NuGet در VSTS

تیم هایی که روی پروژه های توسعه ی نرم افزاری بزرگ کار می کنند ممکن است نیاز به استفاده از ابزار هایی که خودشان تولید می کنند و یا حتی شرکت های دیگر تولید میکنند داشته باشند این ابزار ها می توانند با تکنولوژی هایی نظیر NPM, Maven, RPM و غیره ، پکیج و توزیع شوند.

در این مقاله به ساخت،توزیع و استفاده پکیج در VSTS که با استفاده از NuGet ایجاد می شود را بررسی خواهیم کرد.

مفهوم NuGet

در سال 2010 مایکروسافت تکنولوژی NuGet را معرفی کرد که پکیج کردن ابزارها، منابع، محتواها و... را آسان تر می کند. قبل از بررسی اینکه چگونه VSTS ساخت پکیج و توزیع آن را انجام می دهد اجازه دهید چند مفهوم مرتبط با NuGet را بررسی کنیم.

پکیج های NuGet  پسوند nupkg. دارند که اساسا فایل های زیپ هستند که حاوی همه ی منابع لازم مورد توزیع است. NuGet  همچنین حاوی یک فایل با پسوند nuspec. است که یک فایل XML است که حاوی جزئیاتی از قبیل وابستگی هاست.

پکیج های NuGet  باید در جایی ذخیره شود که دسترسی به آن برای همه اعضای تیم آسان باشد که به این مکان Feed گفته می شود.

یک Feed می تواند یک سرور خارجی باشد که هاست آن NuGet.org یا Microsoft. است باشد و یا میتواند در شبکه ی داخلی تیم به اشتراک گذاشته شود و یا در یک پوشه در فایل سیستم باشد. پکیج های NuGet  از طریق ابزارهای خط دستور که در ویژوال استودیو و یا در NuGet Package Manager جمع آوری شده اند، استفاده می شوند.

شکل 1:ساخت پکیج و روند استفاده از آن

گسترش پکیج بندی VSTS

حال اجازه دهید که VSTS را برای ساخت یک پکیج NuGet مورد بررسی قرار دهیم.

فرض کنید که می خواهیم یک کامپوننت جدید به شکل یک  class library با استفاده از قالب پروژه ی مناسب در ویژوال استودیو ایجاد کنیم این پروژه به تنهایی ممکن است از چند کامپوننت خارجی که از چندین پکیج NuGet اضافه شده است استفاده کند.

یک گزینه، ایجاد یک فایل NuSpec برای حفظ جزئیات پکیج های NuGet  است که در پروژه استفاده شده اند.(فایل های .csproj). زمانی که کدزنی کامپوننت تمام شود می توانیم کد را تحت کنترل نسخه قرار دهیم که ما از VSTS – git به عنوان کنترل نسخه استفاده می کنیم بنابراین ما کار خودمان را انجام می دهیم و سپس تغییرات را در یک مخزن اشتراکی پروژه ی تیمی روی VSTS قرار می دهیم.

شکل 2-کد تحت کنترل نسخه

حال ما می خواهیم یک تعریف build بسازیم برای این کار از سرویس Build در VSTS استفاده می کنیم.

صفحه ی build را از Build باز می کنیم و آیتم های منو را بررسی می کنیم. یک افزونه به نام Packages برای این Build نیاز است که این افزونه در Microsoft Visual Studio Marketplace در دسترس است.

برای نصب آن روی آیکون فروشگاه در گوشه ی سمت راست بالای صفحه کلیک کنید  در فروشگاه Packages را جستجو کنید و سپس نصب کنید. نام کاربری خود را وارد کنید و مجوز های نصب را تایید کنید. این افزونه یک افزونه ی پرداخت شده است و برای یک ماه اول رایگان است و برای مشترکین تا 5 سال رایگان است.زمانی که این افزونه را نصب کردید باید اولین Feed را بسازید این Feed پکیج هارا در مخزن VSTS خود ذخیره خواهد کرد.

شکل3- ساخت یک Feed جدید.

اجازه دهید که نام شرکت خودمان را به Feed بدهیم.بنابراین نام SSGS را به Feed می دهیم.دراینجا این Feed را قابل مشاهده برای همه قرار داده ایم و اجازه دانلود به هر Feed مافوق و عمومی را داده ایم.

نام Feed و URL آن را ذکر کنید.

شکل 4-باز کردن Feed برای نشان دادن UR

نام Feed و URL زمان استفاده از پکیج هایی که روی Feed قرار داده ایم نیاز می شود.

تعریف Build برای ساخت پکیج Push

اجازه دهید دوباره صفحه ی Build را باز کنیم. در این صفحه یک تعریف جدید از Build بسازید از آنجایی که در حال استفاده از پروژه ی class library  هستیم قالب .NET دسکتاپ را انتخاب می کنیم.

شکل5-ساخت تعریف Build

این قالب تمام ابزار های مورد نیاز و پایه ای را اضافه خواهد کرد. می توانیم از نسخه Host استفاده کنیم و یا می توانیم نسخه ی promise را نصب و استفاده کنیم

شکل6- انتخاب Agent و Solution

در صفحه ی task، task های مختلفی برای ذخیره در پکیج های NuGet  که در پروژه استفاده می شود ، خواه برای کامل کردن آن و خواه برای کپی و انشار نسخه های آن ، وجود دارد. ما می خواهیم خروجی کامپایل را به صورت یک NuGet پکیج روی Feed قرار دهیم.حال اجازه دهید که NuGet task زیر را به Publish Artifact task اضافه کنیم.

شکل 7- اضافه کردن NuGet Task به Build Definition

این task عملیات های زیادی که مربوط به NuGet است نظیر pack, push, restore و غیره را نشان میدهد. برای این task تازه اضافه شده ما عملیات Pack را انتخاب خواهیم کرد. برای این عملیات ما فایل nuspec. و یا فایل csproj. که هرکدام قابل اجرا می باشند را ارائه می کنیم. این فایل مخالف پکیج هایی است که مورد نیاز برای پکیج ما است.

شکل 8- عملیات NuGet Task Pack

بعد از این گام یک  NuGet task دیگر اضافه خواهیم کرد. این NuGet task پکیج ساخته شده را روی Feed ما قرار می دهد. اجازه دهیدکه عملیات  Push را از لیست انتخاب کنیم حال نیاز به انتخاب یک Feed داریم که طبیعتا همان Feed که قبلا ساخته ایم خواهد بود.

شکل 9 – عملیات NuGet Task Push

حال Build را فعال کنید.

وقتی که Build با موفقیت به اتمام رسید Feed را چک کنید و ببینید که آیا پکیج بارگذاری شده است یا نه که یک پکیج همنام با همان class library که به وسیله ی Build بارگذاری شده است را خواهیم یافت.

استفاده از پکیج NuGet از Feed خودمان

اجازه دهید که به چگونگی استفاده از پکیج از Feed که قبلا ساخته ایم بپردازیم.

برای انجام این کار ویژوال استودیو را باز کنید در ویژوال استدیو به آدرس Tools > Options > NuGet Packages Manager > Package Sources بروید که در آن معمولا یک منبع بطور خودکار اضافه شده است. منبع Feed که توسط مایکروسافت که برای شرکت خودشان ساخته شده و ما از آن در اپلیکیشن های خودمان استفاده می کنیم را نشان می دهد. ما این منبع را به Feed خود اضافه خواهیم کرد.

برای اضافه کردن Feed به عنوان پکیج منبع ، نیاز به نام و URL آن Feed داریم که پیش تر به آن اشاره کردیم. حال روی + سبز کلیک کنید که در بالا سمت راست قرار دارد(به شکل 10 توجه کنید)  با این کار یک dialog box برای اضافه کردن منبع جدید باز می شود.

شکل 10- اضافه کردن منبع  NuGet Package

نام و URL مربوط به Feed خودمان را در dialog box وارد می کنیم و روی دکمه کلیک کنید تا به Feed متصل شوید. با این کار یک منبع جدید به Feed مربوط به NuGet ما در ویژوال استدیو را نشان می دهد.

حال می توانیم بررسی کنیم که آیا این Feed پکیج بارگذاری شده ی ما را قبول میکند یا نه.

در ویژوال استودیو یک پروژه ی جدید بسازید و یا یکی از پروژه های موجود را باز کنید در solution   explorer روی نام پروژه راست کلیک کنید و Manage NuGet Packages را انتخاب کنید.

در پنجره ی NuGet Package Manager لینک بالای صفحه را انتخاب کنید حال در بالا گوشه ی سمت راست از لیست نام منابع ، نام Feed که به عنوان منبع پکیج ارائه داده بودیم را انتخاب کنید.

شکل 11- انتخاب پکیج NuGet از Feed ساخته شده

این کار پکیجی که توسط Build بارگذاری شده بود را نشان خواهد داد. همان پکیج را انتخاب کنید و روی دکمه ی install کلیک کنید با این کار DLL ساخته شده به وسیله ی پروژه ی class library در پروژه ی جدید ما کپی می شود و یک ارجاع به آن اضافه کنید.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید