# 生成程序包
nuget pack
# 创建nuspec
nuget spec
# 修改nuspec信息
# 在网站设置密钥
# 保存 NuGet 库 和 符号服务器 的 API 密钥
nuget setApiKey 密钥
# 推送包
nuget push 包.1.0.1.nupkg
# 推送包指定源,报错Source parameter was not specified.
nuget push 包.1.0.1.nupkg -source nuget.org
# 报错信息
Pushing 包.1.0.1.nupkg to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
Forbidden https://www.nuget.org/api/v2/package/ 1384ms
响应状态代码不指示成功: 403 (The specified API key is invalid, has expired, or does not have permission to access the specified package.)。
# 推送成功
Pushing 包.1.0.1.nupkg to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
Created https://www.nuget.org/api/v2/package/ 3192ms
Your package was pushed.
问题1:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 在以下主源中找不到包“1.0.1.1”:“https://api.nuget.org/v3/index.json”。请验证你的所有联机包源是否都可用,以及是否正确指定了包 ID、版本。
解决方法:
工具》选项》NuGet包管理器》常规》点击清除所有NuGet缓存
编译出Release版本,在开始打包文件。
NuGet pack -o %PacksPath%%ProjectName% -build -Properties configuration=release
自动发布脚本
@echo off
echo 初始化参数
set url=nuget.org
set pwd=替换为key
echo 开始执行编译
cd XX
echo 进入XX目录
echo 开始清理nupkg包
del *.nupkg
echo 清理结束
echo 开始编译
NuGet pack -build -Properties configuration=release
echo 编译成功
echo 开始发布
NuGet push *.nupkg -source %url% %pwd%
echo 发布成功
cmd
参考资料:
- https://docs.github.com/en/free-pro-team@latest/packages/guides/configuring-dotnet-cli-for-use-with-github-packages
- https://docs.microsoft.com/zh-cn/nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli
- https://docs.microsoft.com/zh-cn/archive/msdn-magazine/2011/november/nuget-manage-project-libraries-with-nuget#nuget