dotnet nuget push
本文适用于: ✔️ .NET Core 3.1 SDK 及更高版本
“属性”
dotnet nuget push
- 将包推送到服务器,并将其发布。
摘要
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
描述
dotnet nuget push
将包推送到服务器,并将其发布。 push 命令使用在系统的 NuGet 配置文件或配置文件链中找到的服务器和凭据详细信息。 有关配置文件的详细信息,请参阅 Configuring NuGet Behavior(配置 NuGet 行为)。 通过加载 %AppData%\NuGet\NuGet.config (Windows) 或 $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS) 获得 NuGet 的默认配置,然后加载任意 nuget.config 或 .nuget\nuget.config,从驱动器的根目录开始,并在当前目录中结束 。
命令推送现有包。 它不会创建包。 若要创建包,请使用 dotnet pack
。
分层文件夹结构
此命令可以将包存储在分层文件夹结构中,建议这样做以优化性能。 当发布到本地文件夹时,它将包存储在分层文件夹结构中, (源) ,就像 nuget add
在分层文件夹结构中至少有一个包一样。 如果源中已有分层文件夹结构化包, dotnet nuget push
则 遵循该结构。 因此,如果要使用 .NET CLI 而不是 NuGet CLI 发布到本地源:
- 在发布第一个包之前,请转到全局包文件夹 %userprofile%.nuget\packages,然后选择包 ID 的根文件夹。它可以是不属于框架的任何包,例如 .NET 标准或 ASP.NET。
- 将所选包文件夹复制到本地源的根文件夹中。
- 使用
dotnet nuget push
将包发布到本地源。 - 现在可以删除之前复制的文件夹,并且可以随意使用
dotnet nuget push
发布到本地源。
或者,将 NuGet CLI 用于第一个包,然后将 用于 dotnet nuget push
其余包。 有关详细信息,请参阅本地源。
自变量
ROOT
指定要推送的包的文件路径。
选项
-d|--disable-buffering
当推送到 HTTP(S) 服务器以减少内存使用率时,禁用缓冲。
--force-english-output
使用固定的、基于英语的区域性强制运行应用程序。
-?|-h|--help
打印出有关如何使用命令的说明。
--interactive
允许命令停止并等待用户输入或操作。 例如,完成身份验证。 自 .NET Core 3.0 SDK 起可用。
-k|--api-key <API_KEY>
服务器的 API 密钥。
-n|--no-symbols
不推送符号(即使存在)。
--no-service-endpoint
不将“api/v2/package”追加至源 URL。
-s|--source <SOURCE>
指定服务器 URL。 NuGet 标识 UNC 或本地文件夹源,只在其中复制文件,而不会使用 HTTP 进行推送。
重要
从 NuGet 3.4.2 开始,此参数为必需,除非 NuGet 配置文件指定了
DefaultPushSource
值。 有关详细信息,请参阅配置 NuGet 行为。--skip-duplicate
将多个包推送到 HTTP (S) 服务器时,会将任何 409 冲突响应视为警告,以便其他推送可以继续。
-sk|--symbol-api-key <API_KEY>
符号服务器的 API 密钥。
-ss|--symbol-source <SOURCE>
指定符号服务器 URL。
-t|--timeout <TIMEOUT>
指定推送到服务器的超时(秒)。 默认值为 300 秒(5 分钟)。 指定 0 时应用默认值。
示例
将 foo.nupkg 推送到 NuGet 配置文件中指定的默认推送源(使用 API 密钥):
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
将 foo.nupkg 推送到官方 NuGet 服务器,以指定 API 密钥:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
将 foo.nupkg 推送到自定义推送源
https://customsource
(指定 API 密钥) :dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
将 foo.nupkg 推送到 NuGet 配置文件中指定的默认推送源:
dotnet nuget push foo.nupkg
将 foo.symbols.nupkg 推送到默认符号源 :
dotnet nuget push foo.symbols.nupkg
将 foo.nupkg 推送到 NuGet 配置文件中指定的默认推送源(超时 360 秒):
dotnet nuget push foo.nupkg --timeout 360
将当前目录中的所有 .nupkg 文件推送到 NuGet 配置文件中指定的默认推送源:
dotnet nuget push "*.nupkg"
注意
如果此命令不起作用,则可能是较旧版本的 SDK(.NET Core 2.1 SDK 及更早版本)中的 bug 导致的。 要解决此问题,请升级 SDK 版本或改为运行以下命令:
dotnet nuget push "**/*.nupkg"
注意
用于执行文件组合的 bash 等 shell 需要用引号括起来。 有关详细信息,请参阅 NuGet/Home#4393。
将所有 .nupkg 文件推送到 NuGet 配置文件中指定的默认推送源,即使 HTTP(S) 服务器返回“409 Conflict”响应也是如此:
dotnet nuget push "*.nupkg" --skip-duplicate
将当前目录中的所有 .nupkg 文件推送到本地源目录 :
dotnet nuget push "*.nupkg" -s c:\mydir
有关推送到 Azure Artifacts 的信息,请参阅 Azure Artifacts 的推送文档。