Если у вас есть фрагмент кода, который может быть повторно использован другими кодировщиками в вашей команде, то создание пакета NuGet будет очень полезным и экономящим время процессом. Создание пакетов NuGet позволит вам делиться кодом со своими товарищами по команде, что избавит их от бесчисленных часов программирования.

Шаг 1. Создание проекта .NETStandard

Начните с создания проекта .NETStandard, который будет содержать повторно используемый код. Помните, что код должен быть максимально универсальным с использованием таких принципов программирования, как универсальные. Настоятельно рекомендуется, чтобы ваше проектное решение содержало как тесты, так и пример проекта CLI, который позволит любому проверить проект и понять его функциональные возможности без большого объема документации.

Шаг 2: Обновите .csproj проекта

Следующим шагом является обновление файла .csproj, чтобы мы нацеливались на разные фреймворки, которые нам нужны. Файл .csproj также будет содержать информацию о пакете NuGet, который обычно находится в файле .nuspec.

В этом примере я буду ориентироваться на 3 разных фреймворка:

- .NETStandard2.0

- .NETFrameworks 4.6.2

-.NETCore 2.2

Для получения дополнительной информации о фреймворках: https://docs.microsoft.com/en-us/dotnet/standard/frameworks#supported-target-framework-versions.

Пример: .csproj

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net462;netcoreapp2.2</TargetFrameworks>
<files>
<file src="bin\Release\net462\INSERT-PACKAGE-NAME.dll" target="lib\net462\INSERT-PACKAGE-NAME.dll" />
<file src="bin\Release\netstandard2.0\INSERT-PACKAGE-NAME.dll" target="lib\netstandard2.0\INSERT-PACKAGE-NAME.dll" />
<file src="bin\Release\netcoreapp2.2\INSERT-PACKAGE-NAME.dll" target="lib\netcoreapp2.2\INSERT-PACKAGE-NAME.dll"/>
</files>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<PackageId>NUGET PACKAGE NAME</PackageId>
<Description>NUGET PACKAGE DESCRIPTION</Description>
<Version>0.0.0.1</Version>
<Authors></Authors>
<Company></Company>
<RepositoryUrl></RepositoryUrl>
<PackageTags>TAGS</PackageTags>
<NeutralLanguage>en-GB</NeutralLanguage>
<Copyright>Copyright 2020</Copyright>
<PackageReleaseNotes>
INSERT ANY PACKAGE RELEASE NOTES
</PackageReleaseNotes>
<PackageProjectUrl>INSERT REPO URL IN HERE</PackageProjectUrl>
</PropertyGroup>
</Project>

Шаг 3: Локальная сборка

Чтобы собрать проект локально, вы можете создать проект с помощью Visual Studio, выбрав ПОСТРОИТЬ -> ПОСТРОИТЬ РЕШЕНИЕ, а затем выбрать ПОСТРОИТЬ -> УПАКОВАТЬ [Имя решения]. Или вы можете использовать интерфейс командной строки Visual Studio Developers для сборки и упаковки проекта в пакет NuGet. Откройте командную строку разработчика для VS 2019, нажав клавишу окна и введя командную строку разработчика для VS 2019. После запуска интерфейса командной строки вы можете вставить следующую команду, чтобы собрать и упаковать свой проект.

msbuild -t:pack -p:Configuration=Release -restore

Если локальная сборка завершена с 0 ошибками, то внутри ProjectFolder/Bin/Release вы найдете папки, связанные с фреймворками, которые вы указали в .csproj, содержащие скомпилированные библиотеки DLL и пакет NuGet.

Теперь вы создали свой пакет Nuget, который будет содержать библиотеки DLL для всех различных фреймворков, указанных в нашем файле .csproj.

Вы запускаете дополнительные сценарии, которые могут отправить пакет NuGet либо на сервер NuGet, либо на сервер ProGet.

Обратитесь к ссылкам, представленным ниже:

https://docs.microsoft.com/en-us/nuget/nuget-org/publish-a-package