NuGet 私有庫服務搭建


1. 本文概述

NuGet 服務可以的方便管理 C# 程序依賴包,項目代碼存儲到 Github 平台的時候不用上傳龐大的 dll 文件。企業內部使用的話,往往有些私有的包不希望擴散到外網環境中。這時可以通過 Nuget.Server 快速搭建私有 Nuget 包管理平台。

2. 私有 NuGet 服務器使用說用

2.1 搭建私有 Nuget.Server 服務

在 Visual Studio 中創建空的 ASP.NET Web 解決方案:

image

添加 Nuget.Server 引用:

image

添加密鑰,用於發布和刪除包:

image

發布部署網站,打開頁面,如下所示部署成功!

image

2.2 Visual Studio 引用私有庫

在 Visual Studio 工具→選項→NuGet包管理器 中添加私有源。私有源的名稱隨意填寫:

image

添加完成,在Nuget管理界面可以切換到私有源中查看所有的包:

image

私有用中的包安裝和卸載與 Nuget 中的方式一致。

2.3 Nuget 私有庫管理

可以在微軟應用商店(Microsoft Store)中下載 NuGet 包瀏覽器:NuGet Package Explorer

其他安裝途徑可以在 NuGet Package Explorer 官方網站中查看。地址如下:

地址: https://github.com/NuGetPackageExplorer/NuGetPackageExplorer

image

2.3.1 查看包

可以在 NuGet Package Explorer 右上角輸入 NuGet 私有庫地址,查看私有庫中的包信息。也可以查看 NuGet 官方庫中的包:

image

2.3.2 發布包

打開 Nuget 包瀏覽器,按照以下步驟創建一個新的包:

image

編輯包信息,添加 DLL 文件:

image

可以添加 Nuget 庫其他引用包:(這里可以添加公有庫和私有庫中的引用包)

image

編輯完成后,在 File → Publish 中發布包:

image

需要輸入秘鑰才能發布:

image

2.3.3 更新包

對已發布的包,可以重新獲取並編輯基礎信息和 dll 文件,更新版本號,重新發布。可以在 NuGet Package Explorer 中查詢歷史版本。

image

2.3.4 刪除包

NuGet Package Explorer 沒有提供直接刪除包的功能,這里可以使用 nuget 命令行工具進行刪除。

首先,要在 Nuget 官方網站下載 Nuget.exe 可執行文件:https://www.nuget.org/downloads

image

下載的 Nuget.exe 放到D盤根目錄,按以下操作流程刪除包:

比如,這里要刪除 EntityFramework 包:

image

命令行中執行以下刪除語句:

nuget.exe delete EntityFramework 6.3.0-preview6-19304-03 -Source http://renqiancheng.com:1000/nuget

image

3. 常見問題說明

3.1 當私有庫與 NuGet 公共庫中的包重復時,VS 如何處理?

在最新版的 NuGet 3 中,所有的 NuGet 源沒有優先級順序,默認從速度最快的源進行下載。所以,不相同的包務必保證名稱或版本號的差異。

3.2 如果在項目中保存私有庫地址,方便團隊成員使用?

可以在項目中添加 NuGet.Config 配置文件,記錄使用到的私有庫地址:

image

<?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="Private Nuget" value="http://privatefeed.com/nuget" />
  </packageSources>
</configuration>

安裝引用的時候也可以指定具體的源:

nuget install Pack1 -Source https://api.nuget.org/v3/index.json -Source http://privatefeed.com/nuget

4. 參考文獻

  1. what if I have duplicate nuget packages in multiple sources?
  2. Installing NuGet package with dependencies on multiple sources


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM