- 使用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 .\bin\Debug\
(默認生成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 Files\dotnet目錄下(一般安裝了netcoreSDK 一定有這個目錄) - 引用私有服務器的Nuget包(配置程序包源引用時選擇對應的程序包源)
最后一點需要注意的地方新建類庫的時候類庫框架一定要選擇你對應應用項目的框架(一般netcore項目創建的是netcore框架的類庫,push命令是沒有辦法修改nuget包的框架的這點需要注意)
-
更多詳細的nuget命令參考https://docs.microsoft.com/zh-cn/nuget/tools/nuget-exe-cli-reference