
روشهای زیادی برای تهیهی یک بستهی نیوگت وجود دارند، مانند استفاده از برنامهی NuGet Package Explorer و یا تهیهی یک فایل nuspec و تغییر مداوم جزئیات آن، به ازای هر نگارش جدید پروژه. در ادامه قصد داریم روش خودکار سازی این تغییرات را بررسی کنیم.
الف) تهیه فایل nuspec
NuGet قابلیت پذیرش متغیرهای خود تکمیل شوندهای را نیز دارد. فایل nuspec یا جزئیات بستهی تولیدی نیوگت، در این حالت یک چنین شکلی را پیدا میکند:
<?xml version=”1.0″?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<licenseUrl>https://site.com/prj/LICENSE</licenseUrl>
<projectUrl>https://site.com/prj</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
<copyright>Copyright 2015 My Name</copyright>
</metadata>
</package>
برای مثال اگر پروژهی ما TestNuget نام دارد، فایلی به نام TestNuget.nuspec را با محتویات فوق برای آن تهیه خواهیم کرد. همانطور که مشاهده میکنید، در این فایل ویژه، هیچکدام از اطلاعات شماره نگارش پروژه، نام نویسنده و غیره، از پیش تعیین نشدهاند. این اطلاعات، از فایل AssemblyInfo.cs پروژه، به صورت خودکار دریافت خواهند شد و نکتهی مهم آن، قرار گرفتن این فایل nuspec در پوشهی اصلی پروژه است. از این جهت که برای کامپایل آن و تبدیل به یک بستهی نیوگت، فایل nuget.exe را بر روی فایل پروژهی اصلی برنامه اجرا خواهیم کرد و نه بر روی این فایل nuspec.
بنابراین تکمیل اطلاعات فایل AssemblyInfo.cs را فراموش نکنید. برای مثال اطلاعات AssemblyCompany آن، در قسمت authors فایل فوق جایگزین میشود.
ب) تهیه فایل NuGet.exe
فایل NuGet.exe را جهت کامپایل فایل فرضی TestNuget.nuspec نیاز داریم. میتوان آنرا از سایت کدپلکس تهیه کرد و یا تنها کافی است بر روی Solution موجود در VS.NET کلیک راست کرده و گزینهی Enable NuGet Package Restrore را انتخاب کنیم. با اینکار به صورت خودکار پوشهی ویژهای به نام .nuget به همراه فایل NuGet.exe ایجاد میشود.
ج) کامپایل فایل nuspec
در همان پوشهی جدید .nuget، یک فایل bat را با محتوای ذیل تهیه کنید:
“%~dp0NuGet.exe” pack “..\TestNuGet\TestNuGet.csproj” -Prop Configuration=Release
copy “%~dp0*.nupkg” “%localappdata%\NuGet\Cache”
pause
در این مثال، مسیر TestNuGet\TestNuGet.csproj به محل قرارگیری فایل پروژهی برنامه اشاره میکند. در اینجا فایل nuget.exe را بر روی فایل csproj برنامه اجرا خواهیم کرد. با توجه به اینکه قرار است یک بستهی عمومی منتشر شود، بهتر است تنظیمات تولید بستهی نیوگت را بر روی حالت release قرار داد که در این دستور، قید شدهاست.
در ادامه برای اینکه امکان آزمایش محلی این بسته را نیز داشته باشیم، فایل بستهی تولیدی، به کش محلی نیوگت، در سیستم جاری کپی میشود.
نکتهی جالب این روش، تهیهی قسمت dependencies پروژه، به صورت خودکار است:
<?xml version=”1.0″?>
<package xmlns=”http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd”>
<metadata>
<id>TestNuget</id>
<version>1.0.0.0</version>
<title>TestNuget</title>
<authors>Vahid N.</authors>
<owners>Vahid N.</owners>
<licenseUrl>https://site.com/prj/LICENSE</licenseUrl>
<projectUrl>https://site.com/prj</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>This is a test.</description>
<copyright>Copyright 2015 My Name</copyright>
<dependencies>
<dependency id=”EntityFramework” version=”6.1.2″ />
</dependencies>
</metadata>
</package>
اطلاعاتی را که در اینجا مشاهده میکنید، حاصل کامپایل فایل nuspec معرفی شدهی در ابتدای بحث است (با اجرای فایل bat تهیه شده) که یک کپی از آن در فایل TestNuget.1.0.0.0.nupkg نهایی نیز قرار میگیرد. به این ترتیب دیگر نیازی نیست تا این قسمت را به صورت دستی معرفی و هر بار با به روز رسانی وابستگیهای پروژه، شماره نگارشهای آنها را نیز به روز کرد. اطلاعات version به صورت خودکار از پروژهی جاری استخراج میشوند.
د) آزمایش محلی بستهی جدید
اکنون که فایل TestNuget.1.0.0.0.nupkg تولیدی را در آدرس localappdata%\NuGet\Cache% نیز کپی کردهایم، به منوی Tools/Options مراجعه و در قسمت NuGet Package Manager آن، به قسمت Package sources، این آدرس کش محلی را نیز معرفی کنید:
به این ترتیب، بدون ارسال یک بسته به سایت اصلی نیوگت، میتوان بسته را از کش محلی نیوگت نصب و آزمایش کرد:
مجموعه مطالب
آخرین مطالب
- داغترین ترندهای گوگل در ۲۰۲۱: سریال Squid Game و ورزش کریکت در صدر
- قانون جدید توییتر: تصاویر افراد را بدون رضایت آنها منتشر نکنید.
- اپل در بلک فرایدی به مشتریان خود کارت خرید ۲۵ تا ۲۰۰ دلاری هدیه میدهد.
- توسعه هوش مصنوعی ۶ میلیون دلاری که لهجه را در حین مکالمه تغییر میدهد
- کاهش تعرفه اینترنت رایتل بدون خرید بسته به مناسب سالگرد فعالیت این اپراتور
- آپدیت جدید Google Messages نمایش ایموجی واکنشهای iMessage را ممکن کرد
- ایموجی های جدید مایکروسافت بهصورت دو بعدی برای ویندوز ۱۱ منتشر شدند
- واتساپ قابلیت کنترل سرعت پخش پیامهای صوتی فوروارد شده را آزمایش میکند
- ساخت استیکر در نسخه بتای پیام رسان واتساپ دسکتاپ ممکن شد
- دستاورد بزرگ رآکتور همجوشی هستهای کره جنوبی: حفظ ۳۰ ثانیهای پلاسمای ۱۰۰ میلیون درجهای
- تراشه ۳ نانومتری AMD احتمالا برای اولین بار توسط سامسونگ تولید میشود
- وزارت اطلاعات هشدار داد: از ارائه مشخصات هویتی به وبسایتهای جعلی خودداری کنید.
- اینستاگرام استفاده از ویدیوهای سلفی برای احراز هویت را آغاز کرد
- واتساپ دسکتاپ و تحت وب چگونه بدون نیاز به اتصال به گوشی مورد استفاده قرا میگیرد؟
- ایلان ماسک ۹۳۰ میلیون دلار دیگر از سهام تسلا را فروخت
- انویدیا برای مقابله با گرمایش جهانی با هوش مصنوعی زمین دیجیتال توسعه میدهد
- گوگل روی امکان ویرایش اسکرین شاتها در مرورگر کروم نسخه وب کار میکند.
- امنیت وردپرس – بخش چهارم: سؤالات متداول درباره امنیت وبسایت وردپرس
- امنیت وردپرس – بخش سوم: ۸ نکته ضروری در تامین امنیت وردپرس
- امنیت وردپرس – بخش دوم: معرفی بهترین افزونه های امنیتی وردپرس