筆記目錄

Skip to content

在離線環境中,在 Visual Studio 中使用本機 NuGet 開發

TLDR

  • 離線環境開發時,應避免直接引用 DLL,改用本機 NuGet 套件來源以利版本管理。
  • 可透過 Visual Studio 的「套件來源」設定,將本機資料夾加入為 NuGet 來源。
  • 使用 nuget add 指令可將自製的 .nupkg 套件發佈至指定的本機來源資料夾。
  • 若需使用外部 NuGet 套件,應從有網路的電腦取得套件,並放置於離線環境的本機來源資料夾中。
  • 切勿將 packages.config 專案目錄下的 packages 資料夾內容直接複製到 NuGet 來源,因為該處缺乏完整的 NuGet 中繼資料。

為什麼需要設定本機 NuGet 來源

在無網路的封閉開發環境中,直接手動下載 DLL 引用會導致版本管理困難,且難以處理套件間的相依性。若專案原本即透過 NuGet 管理,在離線狀態下會發生套件還原失敗。透過設定本機 NuGet 來源,可以確保開發環境擁有穩定的套件庫,並解決 DLL 版本不一致的問題。

設定本機 NuGet 套件來源

什麼情況下會遇到這個問題:當開發環境無法存取網際網路,且需要安裝或還原 NuGet 套件時。

在 Visual Studio 中,可以透過以下步驟設定本機來源:

  1. 開啟 Visual Studio 的 NuGet 套件管理設定。
  2. 在「套件來源」選項中,可以看到預設的離線來源。
  3. 點擊右上角的「+」按鈕,將指定的本機資料夾路徑加入來源清單。

![vs nuget offline package source](../images/在離線環境中,在 Visual Studio 中使用本機 NuGet 開發/vs-nuget-offline-package-source.png)

![add local nuget source](../images/在離線環境中,在 Visual Studio 中使用本機 NuGet 開發/add-local-nuget-source.png)

設定完成後,在安裝套件時即可於右上角的來源選單中切換至該本機路徑。

![select local nuget source](../images/在離線環境中,在 Visual Studio 中使用本機 NuGet 開發/select-local-nuget-source.png)

擴充本機套件

什麼情況下會遇到這個問題:當需要將自行開發的 Class Library 以 NuGet 套件形式提供給離線環境使用時。

若要將套件發佈至本機資料夾,請使用 nuget.exe 執行以下指令:

bash
nuget add {packagePath} -Source {sourcePath}
  • {packagePath}:為你的 .nupkg 檔案路徑。
  • {sourcePath}:為你設定的本機 NuGet 來源資料夾路徑。

擴充來自 NuGet 的套件

什麼情況下會遇到這個問題:當專案需要使用網路上公開的 NuGet 套件,但開發環境無法連線下載時。

此方法需仰賴一台可連網的電腦進行中轉:

  1. 在可連網的電腦上安裝所需的套件。
  2. 找到該套件在 Windows 中的快取路徑(通常位於 %userprofile%\.nuget\packages)。
  3. 將該套件檔案複製並放置到離線開發環境中已設定好的本機來源資料夾內。

WARNING

當使用 .NET Framework 安裝 NuGet 套件時,預設是使用「package.config」,此時在專案根目錄會有一個「packages」的資料夾,裡面也會有安裝過的套件,但這邊的套件不包含完整的 NuGet 資料,因此切勿從此處複製到設定的本機套件來源裡。

異動歷程

  • 2023-12-05 初版文件建立。