Если у вас есть фрагмент кода, который может быть повторно использован другими кодировщиками в вашей команде, то создание пакета 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