- 使用docker搭建私有Nuget服务器
docker run -d -p 8080:80 --name mynuget -v $PWD/nuget/db:/var/www/db -v $PWD/nuget/packages:/var/www/packagefiles -e NUGET_API_KEY=ee28314c-f7fe-2550-bd77-e09eda3d0119 sunside/simple-nuget-server 这里环境变量NUGET_API_KEY要记住后面的命令需要使用
成功后如下图所示: - 打包Nuget包
语法:dotnet pack [--help] [--output] [--no-build] [--build-base-path] [--configuration] [--version-suffix] [project] 需要注意的是如果已经存在的Nuget包,再发布是会提示错误的,如果不是正式版本的升级,则需要其他标识区分,如beta1,则执行的命令为dotnet pack --version-suffix beta1 1.首先将目录转到对应项目目录 2.执行(cmd powershell) dotnet pack
关于pack命令示例:
dotnet pack
dotnet pack -p:PackageVersion=2.1.0 //为包设置版本
打包当前项目。
dotnet pack ~/projects/app1/project.json
打包 app1 项目。
dotnet pack --output nupkgs
打包当前的应用程序,并将生成的包放置到指定的文件夹中。
dotnet pack --no-build --output nupkgs
打包当前的项目到指定的文件夹中,并跳过生成步骤
- 将Nuget包发布到私有服务器
项目目录下执行:
cd .inDebug
(默认生成nuget文件的地址)
nuget push -Source http://192.168.211.129:8080/ -ApiKey ee28314c-f7fe-2550-bd77-e09eda3d0119 ClassLibrary.1.0.0.nupkg
(这里的ApiKey则是第一步的环境变量详细参数查看https://docs.microsoft.com/zh-cn/nuget/tools/cli-ref-push)查看本地nuget包源
nuget sources list
查看特定nuget库中包含的包
nuget list -Source "MyPackage"
删除特定nuget库的包
nuget delete TestPack 1.0.0 -Source "TestPack" -ApiKey ee28314c-f7fe-2550-bd77-e09eda3d0119
清理本地nuget缓存
dotnet nuget locals all --clear
- Nuget.exe环境变量设置(使得cmd /powershell 可以识别nuget命令)
下载Nuget.exe (下载地址https://dist.nuget.org/win-x86-commandline/v4.7.0/nuget.exe)
将Nuget.exe 放置 C:Program Filesdotnet目录下(一般安装了netcoreSDK 一定有这个目录) - 引用私有服务器的Nuget包(配置程序包源引用时选择对应的程序包源)
最后一点需要注意的地方新建类库的时候类库框架一定要选择你对应应用项目的框架(一般netcore项目创建的是netcore框架的类库,push命令是没有办法修改nuget包的框架的这点需要注意)
-
更多详细的nuget命令参考https://docs.microsoft.com/zh-cn/nuget/tools/nuget-exe-cli-reference