在 Visual Studio 內,指定特定的 NuGet 套件安裝來源作法
當在進行專案開發的時候,可以將團隊需要用到的各種常用 API,設計到類別庫內,接著,可以將該類別庫打包成為一個 NuGet 套件,而該 NuGet 套件便可以散發到網路上,提供其他開發團隊的成員,在 Visual Studio 內來設定該 NuGet 套件來源,取得所需要的套件。通常,開發者會打開他們的 Visual Studio,點選功能表 [工具] > [選項] > [NuGet 套件管理員] > [套件來源]
當看到 [可用套件來源] 對話窗出現之後,便可以在這個對話窗中,輸入想要新增的額外 NuGet 來源與名稱,這些 NuGet 的來源可能是公司內部的某個檔案伺服器的路徑、公司內部的私有 NuGet 伺服器、外部其他廠商提供的私有 NuGet 伺服器。
在這篇文章中,我已經將一些授課或者寫書會用到的常用 API,設計成為一個 類別庫,並且打包成為 NuGet 檔案,最後,上傳到 https://www.myget.org/ 網站上;當對於這些 API 有興趣者,只要輸入這個 URL https://www.myget.org/F/course-lab/api/v3/index.json 到 NuGet 來源設定中,便可以取得這些套件。
不過,問題來了,若在某台電腦上的 Visual Studio 已經設定了這個 NuGet 來源,對於使用其他電腦的開發者,一旦打開了這個正在開發的專案,則會因為那台電腦上沒有設定相關 NuGet 來源,而造成無法順利建置該專案;又或者是你自己的電腦重新安裝作業系統或者換了一台新電腦,也會遇到需要重新進行設定的困境。
現在可以使用 [nuget.config] 設個檔案,定義該專案要使用的其他 NuGet 來源,一旦設定好了之後,這些 NuGet 來源,便會跟著該專案跑,也就是說,當這個專案在別台電腦上打開之後,在這台電腦上,就已經會看到這些額外設定的 NuGet 來源。
這個說明專案的原始碼為 CustomNuGetSource
建立練習專案
- 在這裡將會建立一個 Console 類型的專案來做為說明
- 當該專案建立之後,請在該方案總管的節點上,使用滑鼠右擊 [加入] > [新增資料夾]
- 對於該新的方案資料夾,輸入
nuget
- 完成之後,滑鼠右擊 [nuget] 這個資料夾,選擇 [加入] > [新增項目]
- 當新增項目對話窗顯示之後,在 [一般] 標籤頁次內的中間區域,會看到 [XML檔] 這個選項
- 請點選 [XML 檔]這個選項,在下方的名稱欄位中,輸入 :
nuget.config
- 最後,請將底下內容,填入到這個檔案內
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="course-lab" value="https://www.myget.org/F/course-lab/api/v3/index.json" />
</packageSources>
</configuration>
檢查 NuGet 來源是否已經綁定專案了
- 請先關閉 Visual Studio ,並且重新開啟 Visual Studio
- 滑鼠右擊該專案的 [參考] 節點,選擇 [管理 NuGet 套件]
- 當管理NuGet套件視窗出現之後,可以點選該視窗右上方的 [套件來源] 下拉選單
- 此時,將會看到一個新的 NuGet 套件來源選項,這就是剛剛設定的 NuGet 套件來源,而該套件來源,將會跟著該專案跑。
- 另外,點選 Visual Studio 功能表 [工具] > [選項]
- 當選項對話窗出現之後,展開 [NuGet 套件管理員] > [套件來源],也會看到這個新增的套件來源項目
設計測試專案原始碼
在 [Program.cs] 檔案中,使用底下程式碼替代
class Program
{
static void Main(string[] args)
{
var foo = Vulcan.ServiceSample.MonkeyData.Monkeys;
foreach (var item in foo)
{
Console.WriteLine($"{item.Name}");
}
Console.WriteLine("Press any key for continuing...");
Console.ReadKey();
}
}