پیمان محمدی
پیمان محمدی
خواندن ۳ دقیقه·۴ سال پیش

میزبانی سرور NuGet خصوصی با استفاده از BaGet در IIS

نمونه راه‌اندازی شده باگت
نمونه راه‌اندازی شده باگت

اگر قصد انتشار یک پکیج NuGet را دارید و می‌خواهید پیش از انتشار عمومی آن را تست کنید و یا اگر تمایل دارید پکیج های خود را به صورت محلی (و خصوصی) در سیستم خود استفاده کنید، BaGet یک گزینه بسیار عالی است.

در این مطلب نگاهی به نحوه راه اندازی BaGet در IIS و استفاده از آن می‌اندازیم.

نوگت یک Package Manager برای دات نت است که از طریق آن می‌توانید پکیج های خود را منتشر کرده و یا از پکیج های منتشر شده توسط دیگران استفاده کنید.

چرا BaGet؟

باگت یک سرور نوگت سبک، اپن سورس و کراس پلتفرم برای پکیج های NuGet و Symbol های آن است. از باگت می‌توان به عنوان یک سرور Cache برای گالری رسمی نوگت نیز استفاده کرد.

سرور رسمی نوگت نیز اپن سورس است و می‌توان به صورت محلی از آن نیز استفاده کرد اما از Symbol ها پشتیبانی نمی‌‌کند.

از باگت می‌توان در پلتفرم های مختلفی از جمله کامپیوتر شخصی، Docker و... استفاده کرد. در این آموزش نحوه راه‌اندازی آن را در IIS بررسی خواهیم کرد.

نحوه راه اندازی

ابتدا ASP.NET Core Runtime Hosting Bundle را دانلود کنید.

حتی اگر از قبل SDK را نصب دارید، نصب Hosting Bundle برای استفاده از باگت الزامی‌ست.
حتی اگر از قبل SDK را نصب دارید، نصب Hosting Bundle برای استفاده از باگت الزامی‌ست.
در صورتی که IIS را قبلاً فعال نکرده‌اید از بخش Windows Features گزینه Internet Information Services را علامت بزنید و سپس ویندوز خود را حتماً ری‌استارت کنید.

✅ پوشه‌ای با نام دلخواه (به عنوان مثال: BaGet) در مسیر زیر بسازید:

C:\inetpub\wwwroot

✅ به کاربر IIS دسترسی های لازم را برای پوشه BaGet بدهید.

از بخش نسخه های منتشر شده باگت در گیت هاب، آخرین نسخه آن را دانلود کنید.

✅ فایل فشرده دانلود شده (BaGet.zip) را در پوشه‌ای که قبلاً ایجاد کردید استخراج کنید.

✅ از پوشه BaGet فایل appsettings.json را توسط ادیتور مورد علاقه خود بازکرده و سپس پورتی را برای BaGet تنظیم کنید.

به عنوان مثال: در اینجا پورت 50561 جهت عدم تداخل با سایر پروژه ها انتخاب شده است.
&quotUrls&quot: &quothttp://localhost:50561&quot,

✅ از منوی استارت IIS Manager را باز کنید.

سپس بر روی Application Pools کلیک راست کرده و Add Application Pool را انتخاب کنید. در پنجره باز شده Application Pool جدید را تنظیم کنید:

  • نام را انتخاب کنید. (به عنوان مثال: BaGetAppPool)
  • نسخه CLR دات نت را بر روی No Managed Code تنظیم کنید.
  • گزینه Managed Pipeline Mode را بر روی Integrated تنظیم کنید.
  • گزینه Start application pool immediately باید علامت خورده باشد.

پس از ایجاد Application Pool، بر روی Sites کلیک راست کرده و Add Website را انتخاب کنید.

✅ در پنجره باز شده جزئیات وب سایت را تنظیم کنید:

  • نام سایت را انتخاب کنید. (به عنوان مثال: BaGet)
  • نام Application Pool را انتخاب کنید. (به عنوان مثال: BaGetAppPool)
  • آدرس فیزیکی پوشه BaGet را انتخاب کنید.
  • پورت از قبل تعیین شده را انتخاب کنید. (به عنوان مثال: 50561)

✅ تبریک! هم اکنون با مراجعه به آدرس مورد نظر به BaGet دسترسی خواهید داشت.

نحوه آپلود پکیج نوگت

ابتدا با استفاده از دستور زیر پکیج نوگت را برای پروژه خود ایجاد کنید.

dotnet pack --configuration Release

سپس با استفاده از دستور زیر پکیج ایجاد شده را آپلود کنید.

dotnet nuget push -s http://localhost:50561/v3/index.json <PackageFileName>
بجای <PackageFileName> آدرس یا اسم فایل مورد نظر خود را بنویسید.

تنظیم ویژوال استودیو برای استفاده از باگت

برای استفاده از پکیج های آپلود شده، لازم است در ویژوال استودیو BaGet را به عنوان یک منبع تنظیم کنید.

در ویژوال استودیو 2019 از بخش Tools گزینه Options را انتخاب کنید.

سپس از بخش NuGet Package Manager گزینه Package Sources را انتخاب کرده و سپس باگت را اضافه کنید.

تنظیم باگت در ویژوال استودیو
تنظیم باگت در ویژوال استودیو

پس از تایید می‌توانید از پکیج های نوگت محلی دقیقاً مانند پکیج های عمومی وب سایت رسمی نوگت استفاده کنید.

تنظیم خط فرمان دات نت برای استفاده از باگت

در صورتی که از ویژوال استودیو استفاده نمی‌کنید می‌توانید با استفاده از خط فرمان دات نت، باگت را به عنوان منبع اضافه کنید.

dotnet nuget add source http://localhost:50561/v3/index.json -n BaGet

✅ همچنین جهت مشاهده منابع فعلی می‌توانید دستور زیر را اجرا کنید.

dotnet nuget list source


? منابع و لینک های مفید:


?‍? در صورتی که سوال و یا نظری دارید از طریق بخش نظرات با من در ارتباط باشید.

نوگتباگتدات نتiis
ویرگول ایموجی ها را از این بخش حذف می‌کند!
شاید از این پست‌ها خوشتان بیاید