Розуміння основних властивостей для публікації NuGet пакунка 🛠️

Ласкаво просимо до першої статті з моєї серії про публікацію та використання приватних пакунків NuGet! Ця серія проведе вас через увесь процес — від створення та налаштування пакунку до безпечного розповсюдження його в межах вашої організації та інтеграції у ваші проекти.

Пакунки NuGet є важливою частиною розробки в .NET, пропонуючи простий, але потужний спосіб для обміну та повторного використання коду. Чи ви створюєте повторно використовувані компоненти, спільні бібліотеки або API, пакунки NuGet допомагають забезпечити послідовну функціональність у всіх проектах. Для організацій приватні пакунки NuGet дозволяють безпечно розповсюджувати код, гарантуючи, що доступ до нього мають лише авторизовані команди, водночас спрощуючи робочі процеси розробки.

У цій статті ми зосередимося на ключових властивостях для публікації пакунка NuGet, допомагаючи вам зрозуміти їх важливість і ефективно налаштувати їх. Хоч є багато способів налаштувати ваш пакунок, ми почнемо з найпростіший та найзручніший метод: використовуючи графічний інтерфейс (GUI). Залишайтеся з нами, адже ми будемо будувати основу для більш плавного та ефективного процесу розробки.

Щоб розпочати налаштування вашого пакунка NuGet, виконайте ці прості кроки в Visual Studio:

  1. Відкрийте свій проект
    Запустіть свій проект у Visual Studio. Переконайтесь, що проект, над яким ви працюєте, — це саме той, який ви хочете упакувати.
  2. Перейдіть до вікна властивостей
    Клацніть правою кнопкою миші на проекті в Solution Explorer (Обозреватель рішень), потім виберіть Properties (Властивості) з контекстного меню.
  3. Перейдіть до розділу "Package" (Пакет)
    У вікні властивостей знайдіть вкладку Package (Пакет). Тут ви налаштуєте всю необхідну метаінформацію та параметри для вашого пакунка NuGet.

Після того, як ви перейшли до розділу Package (Пакет) у Visual Studio, пора заглибитися в деталі. У наступних розділах ми пояснимо кожну властивість, щоб ви могли правильно та ефективно налаштувати свій пакунок NuGet.

Давайте дослідимо ці властивості та зрозуміємо їх значення!

1. Генерація пакунка NuGet під час складання ✅

Опис: Забезпечує створення файлу .nupkg щоразу, коли ви збираєте проект.
Чому це важливо: Автоматизує створення пакунка, роблячи його готовим до завантаження у NuGet feed.

pic

2. ID пакунка 📛

Опис: Унікальний ідентифікатор для вашого пакунка NuGet.
Приклад: MyAwesomeLibrary або MyCompany.MyTechnology.Feature.
Чому це важливо: Інші проекти використовуватимуть цей ID для встановлення вашого пакунка. Переконайтесь, що він унікальний.

pic

3. Назва 📌

Опис: Назва вашого пакунка, що відображатиметься в галереї NuGet.
Приклад: MyAwesomeLibrary або Helpers Utilities.
Чому це важливо: Допомагає користувачам швидко ідентифікувати ваш пакунок у NuGet feed, особливо якщо він перерахований серед інших пакунків.

pic

4. Версія пакунка 🆕

Опис: Номер версії вашого пакунка у форматі Major.Minor.Patch (наприклад, 1.0.0).
Чому це важливо: Допомагає керувати версіями і дає зрозуміти користувачам, які зміни були внесені. Оновлюйте це поле, коли ви вносите зміни або покращення, щоб показати, чи зміни сумісні з попередніми версіями (мінорні), чи додаються нові функції (мінорні), чи порушують існуючі функціональні можливості (головні). Це дозволяє користувачам зрозуміти вплив оновлення і коригувати свої залежності відповідно.

pic

💡 Порада: При версіонуванні ваших пакунків NuGet рекомендується дотримуватись Семантичного версіонування (SemVer). Це допомагає підтримувати сумісність та дозволяє споживачам вашого пакунка легко розуміти зміни версій (головні, мінорні, патчі).

5. Автори 👩‍💻👨‍💻

Опис: Ім'я(-а) творця(-ів) пакунка.
Приклад: MyName або MyCompany MyTeam.
Чому це важливо: Ідентифікує того, хто створив пакунок.

pic

6. Компанія 🏢

Опис: Офіційна назва компанії або організації, яка відповідає за пакунок NuGet.
Приклад: MyCompany Inc. або TechSolutions Ltd.
Чому це важливо: Допомагає користувачам ідентифікувати творця або видавця пакунка, надаючи довіру та авторитет. Вказівка на назву компанії гарантує, що користувачі знають, хто підтримує пакунок, і можуть звертатися за підтримкою чи для співпраці.

pic

7. Продукт 🎯

Опис: Конкретний продукт або послуга, що асоціюється з пакунком NuGet.
Приклад: MyAwesomeLibrary або Helpers Utilities for .NET.
Чому це важливо: Допомагає користувачам зрозуміти обсяг або фокус пакунка. Вказавши назву продукту, ви чітко визначаєте його призначення, що полегшує користувачам оцінити, чи підходить пакунок для їхніх потреб.

pic

8. Опис 📝

Опис: Коротке резюме того, що робить ваш пакунок.
Приклад: Бібліотека, яка надає утиліти для маніпуляцій з рядками в додатках .NET.
Чому це важливо: Допомагає іншим розробникам зрозуміти мету вашого пакунка.

pic

9. Авторські права ©️

Опис: Необов'язковий текст, що вказує на власника авторських прав пакунка.
Приклад: © 2025 MyCompany
Чому це важливо: Захищає вашу інтелектуальну власність.

pic

10. URL проекту 🌍

Опис: URL, що веде на офіційну веб-сторінку проекту, де користувачі можуть знайти додаткову інформацію про пакунок, таку як документація, функції та інструкції з установки.
Приклад: https://www.mycompany.com/myawesomelibrary
Чому це важливо: Надає користувачам прямий доступ до більш детальної інформації про проект, такої як посібники, приклади та підтримка. Наявність спеціального URL проекту покращує видимість та залучення користувачів до вашого пакунка.

pic

11. Іконка 🖼️

Опис: Шлях до зображення іконки, що представляє ваш пакунок NuGet.
Чому це важливо: Включення іконки допомагає візуально представити ваш пакунок, роблячи його більш впізнаваним у галереї NuGet чи на інших сторінках списків. Це надає професійного вигляду і полегшує користувачам ідентифікацію вашого пакунка серед інших.

pic

12. Теги 🏷️

Опис: Список ключових слів, що описують ваш пакунок, розділених крапками з комами.
Приклад: utilities; string; .NET; helper; library.
Чому це важливо: Теги полегшують пошук вашого пакунка користувачами в галереї NuGet чи на інших платформах. Використання релевантних та специфічних тегів покращує видимість і допомагає пакунку досягти правильної аудиторії.

pic

13. URL репозиторію 🌐

Опис: Посилання на вихідний код або репозиторій проекту.
Приклад: https://github.com/MyCompany/MyAwesomeLibrary.
Чому це важливо: Допомагає користувачам знайти вихідний код або повідомити про проблеми.

pic

14. Примітки до випуску 📰
Опис:
Необов'язкове поле для опису змін у цій версії.
Приклад: Додано нові методи для обрізки рядків.
Чому це важливо: Тримайте користувачів в курсі оновлень чи виправлень помилок.

pic

15.

Версія збірки 🔖

Опис: Версія збірки визначає версію самої збірки. Вона використовується під час виконання програми для відповідності правильної версії збірки.
Формат: Major.Minor.Build.Revision (наприклад, 1.0.0.0)
Чому це важливо: Це критично для зв'язування під час виконання, гарантуючи, що завантажується правильна версія збірки. Коли ви оновлюєте цю версію, це може вплинути на сумісність (особливо, якщо ви використовуєте збірки з сильною назвою).

pic

16. Версія файлу 📂

Опис: Версія файлу використовується для відстеження версії файлу на диску (наприклад, .dll або .exe), і вона може відрізнятися від версії збірки. Це в основному для інформаційних цілей і не впливає на поведінку програми чи завантаження під час виконання.
Формат: Major.Minor.Build.Revision (наприклад, 1.0.0.0)
Чому це важливо: Це дозволяє відстежувати версію фактичного бінарного файлу, навіть якщо версія збірки не змінилася.

pic

17. Ліцензія 🔒

Опис: Інформація про ліцензію, під якою розповсюджується ваш пакунок. Це визначає умови, за якими користувачі можуть використовувати, модифікувати та розповсюджувати пакунок.
Приклад: MIT, Apache 2.0 або власницька ліцензія.
Чому це важливо: Це інформує користувачів про права використання та обмеження пакунка. Чітка ліцензія допомагає захистити вашу інтелектуальну власність і визначає, як інші можуть законно взаємодіяти з вашим кодом. Це також сприяє довірі, оскільки користувачі знають, що вони можуть і не можуть робити з вашим пакунком.

pic

💡 Порада: Якщо ви не впевнені, яку ліцензію вибрати для вашого проекту, відвідайте ChooseALicense.com. Це чудовий ресурс для вибору правильної ліцензії з відкритим кодом для вашого програмного забезпечення, незалежно від того, чи шукаєте ви дозволену ліцензію, ліцензію з копілефтом або інші варіанти ліцензування.

Типи ліцензій:

MIT License: Ліцензія з дозволом, яка дозволяє користувачам вільно використовувати, модифікувати та розповсюджувати програмне забезпечення. Це одна з найбільш популярних ліцензій з відкритим кодом.
Apache 2.0: Дозволяє користувачам використовувати, модифікувати та розповсюджувати ваш код, але також містить явний грант патентних прав від учасників до користувачів.
GPL (General Public License): Ліцензія з копілефтом, яка забезпечує, щоб похідні роботи пакунка залишалися з відкритим кодом.
Proprietary License: Пакунок не є відкритим, і користувачі повинні слідувати умовам, встановленим власником (зазвичай для платного чи комерційного програмного забезпечення).

Як вибрати ліцензію:

Для проектів з відкритим кодом:
Якщо ви хочете, щоб інші могли вільно використовувати та сприяти розвитку вашого коду, ліцензії MIT або Apache 2.0 є популярними варіантами.
GPL підходить для проектів, де ви хочете забезпечити, щоб будь-які зміни в коді залишалися з відкритим кодом.
Для комерційних або закритих проектів:
Можливо, ви захочете використовувати власницьку ліцензію (Proprietary License), яка зберігає повний контроль над програмним забезпеченням і обмежує способи його використання.

Кінцевий файл .csproj




 net8.0  
 enable  
 enable  
 True  
 Exception.Helpers  

 1.0.0  
 khaled 3gwa  
 MyCompany Inc  
 Exception.Helpers  
 Бібліотека, яка надає утиліти для маніпуляцій з рядками в .NET додатках.  
 © 2025 MyCompany  
  https://www.mycompany.com/myawesomelibrary  
 Nuget.png  
 utilities; string; .NET; helper; library  
 https://github.com/MyCompany/MyAwesomeLibrary  
 Додано нові методи для обрізки рядків  
 2.0.0.0  
 2.0.1.0  
 Documents\LICENSE.TXT  




 True  
 \  


 True  
 \  




Дякуємо за читання! 🙏

Дякуємо за ознайомлення з цим посібником по ключовим властивостям NuGet пакунків.

Сподіваюсь, він надав корисну інформацію та практичні поради для створення ваших власних пакунків.

Залишайтеся з нами для наступної статті в цій серії, де ми розглянемо публікацію та споживання приватних NuGet пакунків з Azure DevOps. Побачимося там! 🚀

Перекладено з: Understanding Key Properties for Publishing a NuGet Package 🛠️

Leave a Reply

Your email address will not be published. Required fields are marked *