Git: как управлять зависимостями для ваших библиотек C#?

Я пишу приложения на C# в Rider, и у меня есть несколько собственных библиотек. Эти библиотеки созданы как проекты .netcore. Но есть одна библиотека, которая использует другую мою библиотеку, и она построена как решение.

И я действительно не знаю, как я могу использовать его в своих других проектах? Я просто обычно клонирую свой проект lib в папку Solution. Но эта библиотека тоже является целым решением.

Как вы решаете ту же проблему в своей работе?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
206
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете собрать его как пакет NuGet (используйте его с локального диска или загрузите на NuGet.Org и используйте оттуда)

Сделать это:

Запустите библиотеку классов (.Net Standard или .Net Core)

Настройте свой файл .csproj следующим образом: (пример netcoreapp3.1)

<Project Sdk = "Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <Description>Any description here</Description>
    <Authors>Your name here</Authors>
    <Company />
    <PackageProjectUrl>your git hub repo link</PackageProjectUrl>
    <RepositoryUrl>your git hub repo link</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <PackageTags>any keywords here with spaces NOT comma</PackageTags>
    <InludeSymbols>true</InludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
    <PackageLicenseFile>License.md</PackageLicenseFile>
    <Version>1.0.2</Version>
  </PropertyGroup>

  <ItemGroup>
    <None Include = "..\..\License.md">
      <Pack>True</Pack>
      <PackagePath></PackagePath>
    </None>
  </ItemGroup>
</Project>

Для этого Include = "..\..\License.md" вам нужно добавить License.md, вы можете найти его в Интернете или скопировать с вашего github.

После сборки проекта вы найдете .nupkg в "\bin\Debug"

Если вы хотите загрузить его на NuGet.org:

  1. Зарегистрируйте учетную запись на nuget.org
  2. Загрузите свой пакет и следуйте инструкциям, таким как добавление файла README и т. д., очень простые шаги.
  3. Для проектов, которым нужна эта библиотека, просто щелкните проект правой кнопкой мыши -> управление пакетом NuGet и добавьте этот пакет.

Как добавить локальное репо в качестве источника NuGet?!

Смотрите эту статью: Как мне локально установить пакет NuGet .nupkg?

Если я правильно вас понимаю, я должен превратить все зависимости в пакеты nuget, а затем превратить библиотеку subj в пакет nuget, но связать другие библиотеки как зависимости nuget?

MaxLevs 13.12.2020 22:15

Пакеты @MaxLevs NuGet эффективны в случаях повторно используемых компонентов (утилит), таких как средства проверки строк и т. д.

Useme Alehosaini 13.12.2020 22:16

@MaxLevs, если ваш повторно используемый компонент похож на слой DAL и т. д., Я не думаю, что это будет хороший выбор.

Useme Alehosaini 13.12.2020 22:17

@MaxLevs, но если библиотека всегда использует одни и те же входы и выходы, все равно хороший выбор

Useme Alehosaini 13.12.2020 22:17

@MaxLevs я ответил на твой вопрос?

Useme Alehosaini 13.12.2020 22:19

@MaxLevs, библиотеку какого типа вы хотите использовать между проектами, объясните, пожалуйста.

Useme Alehosaini 13.12.2020 22:20

Это парсер для некоторой грамматики

MaxLevs 13.12.2020 23:21

@MaxLevs, это здорово, поэтому ввод представляет собой строку, а вывод известен (логическое значение, список ошибок и т. д.), что означает, что вы можете создать свою собственную библиотеку (NuGet). сделать это, если вы застряли. задайте вопрос с проблемой и снова поможет.

Useme Alehosaini 13.12.2020 23:23

Большое спасибо. сейчас изучаю nuget

MaxLevs 13.12.2020 23:32

Другие вопросы по теме