آموزش ساخت NuGet Package به صورت گام به گام

creating a nuget package 6037 تصویر

آموزش ساخت NuGet Package به صورت گام به گام

ساخت NuGet Package یک فرآیند نسبتا ساده است اما برای اولین بار ممکن است کمی پیچیده به نظر برسد. ما در این مقاله یک بسته NuGet با نام LogAssist را ایجاد کرده و در یک برنامه از آن استفاده خواهیم کرد.

ایجاد پروژه LogAssist

بسته شما باید یک کلاس از نوع .Net Framework Class Library باشد. و تمام فایل هایی که می خواهید در بسته شما وجود داشته باشند، باید در پروژه Include شوند. LogAssist یک پروژه ساده برای log کردن رویداد های مختلفی است که در زمان اجرای برنامه رخ می دهد (مانند خطاها).

برای ایجاد این پروژه مراحل زیر را دنبال کنید:

  • یک پروژه جدید با نام LogAssist و از نوع Class Library ایجاد کنید.
  • یک کلاس جدید با نام Logger ایجاد کرده و محتوای زیر را در آن بنویسید.

کلاس Logger

public static class Logger
{
    /// <summary>
    /// مسیر فایل log
    /// </summary>
    private const string LogFileName = "App.log";
    /// <summary>
    /// این تابع محتوای داده شده را در فایل log می نویسید
    /// </summary>
    /// <param name="logContent">محتوای log</param>
    public static void Write(string logContent)
    {
        try
        {
            var modifiedContent = $"[{DateTime.Now}] {logContent}";
            using (var stream = new FileStream(LogFileName, FileMode.OpenOrCreate))
            using (var writter = new StreamWriter(stream))
                writter.WriteLine(modifiedContent);
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
}

حال این پروژه را Build کنید تا فایل dll مربوط به آن تولید شود. تا اینجای کار ما پروژه مورد نظر خود را ایجاد کردیم. در ادامه نحوه تبدیل این پروژه یک بسته NuGet را بررسی می کنیم.

ایجاد فایل .nuspec

.nuspec یک فایل XML شامل اطلاعات مربوط به بسته و سایر اطلاعاتی که سایت Nuget.org برای انتشار بسته به آن نیاز دارد، است. این فایل مهمترین بخش یک بسته NuGet محسوب می شود. در زیر ساختار یک فایل .nuspec را مشاهده می کنید:

<?xml version="1.0"?>
<package  xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>   
    <id></id>
    <version></version>
    <title></title>
    <authors></authors>
    <owners></owners>
    <licenseUrl></licenseUrl>
    <projectUrl></projectUrl>
    <iconUrl></iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description></description>
    <releaseNotes></releaseNotes>
    <copyright></copyright>
    <tags></tags>
    <dependencies>
      <dependency id="" />
    </dependencies>
    <summary></summary>
  </metadata>
  <files>
    <file src="" target="" />
  </files>
</package>

عناصر های ضروری

عنصر توضیحات
id

شناسه (یا همان نام) مربوط به بسته را مشخص می کند. این نام حساس به حروف است و باید منحصر به فرد باشد. همچنین نباید شامل فضای خالی باشد.

version

نسخه بسته را بر اساس الگوی نسخه بندی major.minor.patch مشخص می کند.

description

توضیحات مربوط به بسته را مشخص می کند.

authors

لیست نویسندگان بسته را مشخص می کند. برای جدا سازی نویسدگان باید از  comma استفاده کنید.

عناصر اخیتاری اما مفید

عنصر توضیحات
title

عنوان بسته شما را مشخص می کند. اگر مشخص نشود، به شناسه بسته برای عنوان استفاده می شود.

projectUrl

آدرس مربوط به بسته را مشخص می کند. برای مثال اگر پروژه شما در سایت GitHub باشد، می توانید آدرس مخزن را در این بخش وارد کنید.

licenseUrl

آدرس فایل لایسنس بسته را مشخص می کند.

iconUrl

آدرس یک تصویر PNG با اندازه ۶۴×۶۴ که به عنوان آیکون بسته نمایش داده می شود. اگر مشخص نشود، تصویر پیشفرض برای بسته انتخاب می شود.

releaseNotes

توضیحات مختصری در مورد نسخه منتشر شده را مشخص می کند.

copyright

جزئیات مربوط به کپی رایت بسته را مشخص می کند.

در زیر فایل .nuspec مربوط به پروژه LogAssist را مشاهده می کنید:

<?xml version="1.0"?>
<package  xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
      <metadata>   
            <id>LogAssist</id>
            <version>1.0.0</version>
            <title>Simple Logging Tool For .Net Applications</title>
            <authors>AmRo</authors>
            <owners>AmRo</owners>
            <licenseUrl>https://github.com/AmRo045/LogAssist/blob/master/LICENSE</licenseUrl>
            <projectUrl>https://github.com/AmRo045/LogAssist</projectUrl>
      <iconUrl>https://raw.githubusercontent.com/AmRo045/LogAssist/master/Resources/LogAssist_Icon.png</iconUrl>
            <requireLicenseAcceptance>false</requireLicenseAcceptance>
            <description>LogAssist is an exception and error logging tool.</description>
            <releaseNotes>First release</releaseNotes>
            <copyright>Copyright 2017 SourceSara.Com</copyright>
            <tags>logger exceptions error logging</tags>
            <summary>LogAssist is an exception and error logging tool.</summary>
      </metadata>
      <files>
            <file src="Readme.txt" target="" />
      </files>   
</package>

ایجاد بسته NuGet

بعد از ایجاد فایل .nuspec حال باید آن را به یک بسته تبدیل کنید. به سایت Nuget.org رفته و از  قسمت دانلود فایل nuget.exe را دانلود کنید. این برنامه با استفاده از اطلاعات موجود رد فایل .nuspec پروژه شما را به یک بسته Nuget تبدیل می کند. توجه داشته باشید که فایل nuget.exe باید در داخل فولدر پروژه شما اجرا شود.

برنامه nuget.exe را از طریق خط فرمان و با دستور زیر اجرا کنید:

nuget.exe config -Set repositoryPath="\full-path-to-your-packages-folder\"

دستور فوق مسیری که بسته شما قرار دارد را مشخص می کند.

حال دستور زیر را اجرا کنید تا بسته شما ایجاد شود:

nuget.exe pack -IncludeReferencedProjects -properties Configuration=Release

بعد از اجرای دستور فوق یک فایل جدید با پسوند .nupkg ایجاد می شود که شامل فایل های مربوط به بسته است. نام بسته به طور خودکار با فرمت [package id].[package version].nupkg ایجاد می شود. برای مثال (LogAssist.1.0.0.nupkg).

انتشار بسته NuGet

حال بسته شما آماده است و می توانید آن را در سایت Nuget.Org منتشر کنید تا در دسترس سایر توسعه دهنده ها قرار گیرد. در این آموزش فرض می کنیم که شما قبلا در این سایت حساب کاربری و یک API Key مربوط به خودتان را ایجاد کرده اید.

آپلود بسته به صورت دستی

در این روش شما به راحتی می توانید با رفتن به لینک زیر فایل nupkg مربوط به بسته خودتان را آپلود کنید. صفحه آپلود بسته سایت NuGet بعد از آپلود شدن بسته NuGet آن را باز کرده و محتوای فایل .nuspec را بررسی می کند. اگر بسته شما ایرادی نداشته باشد، آن را منتشر خواهد کرد.

آپلود بسته با استفاده از فایل Nuget.exe

به منظور آپلود بسته استفاده از برنامه Nuget.exe ابتدا باید با استفاده از دستور زیر API Key خود را تنظیم کنید:

nuget.exe config setApiKey aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

بعد از تنظیم API Key می توانید به راحتی با استفاده از دستور زیر بسته خود را آپلود کنید:

nuget.exe push [your-package-filename].nupkg -Source https://www.nuget.org/api/v2/package

 

نکته! با استفاده از دستور زیر می توانید هر تعداد فایل nupkg که در پوشه وجود داشته باشد، آپلود کنید:

nuget.exe push *.nupkg -Source https://www.nuget.org/api/v2/package

فیلم آموزش نحوه ایجاد یک بسته NuGet

برای درک بهتر مراحل فوق می توانید فیلم آموزشی زیر را مشاهده کنید.

نکات آموزش

  • در فیلم آموزشی فوق از روش آپلود دستی استفاده شده است.
  • ما بعد از ایجاد پروژه توسط نرم افزار ویژوال استودیو آن را با استفاده از Git در سایت GitHub آپلود کرده ایم.
  • توجه داشته باشید که ما هنگام ساخت این آموزش یک بسته با نام LogAssist در سایت Org ایجاد کرده ایم. بنابراین ممکن است شما نتوانید یک بسته دیگر با همین نام ایجاد کنید.
  • بعد از آپلود شدن بسته، مدتی طول می کشد تا بسته شما آماده استفاده شود (در بدترین حالت چند ساعت).
  • برای ایجاد حساب کاربری در سایت Nuget باید از اکانت مایکروسافت خودتان استفاده کنید.

لینک های مفید

  • مستندات مایکروسافت درمورد ساخت بسته Nuget
  • صفحه دریافت API Key در سایت NuGet
  • Nuget چیست؟

نوشته آموزش ساخت NuGet Package به صورت گام به گام اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *