dotnet CLI推送Nuget
前提:
-
准备好要发布的包
-
选择一个打包工具,可以是dotnet CLI、nuget.exe CLI、MSBuild
-
准备好Nuget官方API Key
自述文件
先必须添加Readme.md到项目中(包含在项目中),双击项目文件,添加README.md(注意路径),并制定文件地址:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
//...
<PackageReadmeFile>README.md</PackageReadmeFile>
//...
</PropertyGroup>
<ItemGroup>
//...
<None Include="README.md" Pack="true" PackagePath=""/>
//...
</ItemGroup>
</Project>
设置属性
打包工具这里使用的dotnet工具,包的表述来源于项目proj项目的属性,所以首先得设置属性,以下是官方示例
-
PackageId
(包标识符)必须跨 nuget.org 和承载包的任何其他目标是唯一的。 如果未指定值,则命令使用 .AssemblyName
-
Version
,窗体 Major.Minor.Patch[-Suffix] 中特定的版本号,其中 -Suffix 标识预发布版本。 如果未指定,默认值为1.0.0
。 -
Authors
是包的作者。 如果未指定,默认值为AssemblyName
。 -
Company
是公司信息。 如果未指定,则默认值为Authors
。 -
Product
是产品信息。 如果未指定,默认值为AssemblyName
。 -
....
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>UniqueID</PackageId>
<Version>1.0.0</Version>
<Authors>Author Name</Authors>
<Company>Company Name</Company>
<Product>Product Name</Product>
</PropertyGroup>
</Project>
打包
要生成 NuGet 包或 .nupkg 文件,请从项目文件夹运行 dotnet pack
命令,该命令还会自动生成项目
dotnet pack
若要在运行 dotnet build
时自动运行 dotnet pack
,请将以下行添加到 <PropertyGroup>
中的项目文件内:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
发布
使用命令dotnet nuget push
可将打包好的.nupkg文件推送到Nuget,可将如下命令写入一个.ps1文件用powershell执行,key是nuget的API Key
dotnet nuget push [<ROOT>] [-d|--disable-buffering] [--force-english-output]
[--interactive] [-k|--api-key <API_KEY>] [-n|--no-symbols]
[--no-service-endpoint] [-s|--source <SOURCE>] [--skip-duplicate]
[-sk|--symbol-api-key <API_KEY>] [-ss|--symbol-source <SOURCE>]
[-t|--timeout <TIMEOUT>]
dotnet nuget push -h|--help
Write-host "PSScriptRoot
dotnet build
dotnet pack -o ./pack
set-location ./pack
dotnet nuget push .nupkg -k oy2xxxxxxxxxxaxxxxxxxxxxqklnlbm -s https://www.nuget.org/
remove-item ./.nupkg -Recurse
参考
https://learn.microsoft.com/zh-cn/nuget/create-packages/creating-a-package-dotnet-cli