.NET Core:搭建私有Nuget服務器以及打包發(fā)布Nuget包

一.借助Docker搭建私有Nuget服務器
使用nuget包的優(yōu)勢不言而喻,舉個常見的例子,A團隊和B團隊都用到同一個類庫,這個時候A團隊和B團隊不需要這個類庫的代碼,只需要用Nuget包還原,就能完成引用。與此同時,如果這個類庫升級了,只要引用的Nuget包還是一樣的版本,就不會出現(xiàn)引用升級而造成的編譯錯誤。
而出于工作環(huán)境或其他原因,Nuget包可能不能發(fā)布到公有的Nuget服務器,這個時候可以考慮Docker一鍵搭建一個內(nèi)網(wǎng)可以訪問的Nuget服務器。
這里我們假設你已經(jīng)有一臺運行Docker的服務器,輸入如下命令:

docker run -d  -p 8080:80 -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

-v 用當前目錄的nuget文件夾掛載Nuget服務器的數(shù)據(jù)
-e NUGET_API_KEY=ee28314c-f7fe-2550-bd77-e09eda3d0119 設置Nuget服務器的管理Key

訪問Nuget服務器

二. 打包發(fā)布Nuget包

dotnet pack [--help] [--output] [--no-build] [--build-base-path] [--configuration] [--version-suffix] [project]

需要注意的是如果已經(jīng)存在的Nuget包,再發(fā)布是會提示錯誤的,如果不是正式版本的升級,則需要其他標識區(qū)分,如beta1,則執(zhí)行的命令為dotnet pack --version-suffix beta1


dotnet pack

默認的輸出文件夾在bin目錄下的Debug目錄,可以看到生成了對應版本號的相關文件。


打包好的nuget包

接下來借助Nuget.exe執(zhí)行如下命令:
Nuget.exe push -Source {NuGet package source URL} -ApiKey key {your_package}.nupkg
發(fā)布Nuget包

三.引用私有Nuget服務器的Nuget包
對于VS,可以直接配置Nuget來直接還原私有服務器上的Nuget包


配置Nuget

列出Nuget包

然而對于VSCode或者其他編輯器來講,如果沒配置過Nuget,則需要在項目中引入Nuget.config來完成

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="184" value="http://192.168.9.184:8080" />
  </packageSources>
  <disabledPackageSources>
    <add key="Microsoft and .NET" value="true" />
  </disabledPackageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
</configuration>

本文采用 知識共享署名-非商業(yè)性使用-相同方式共享 3.0 中國大陸許可協(xié)議
轉載請注明:作者 張蘅水

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容