NuGet 2.6 版本資訊
NuGet 2.5 版本資訊 | NuGet 2.6.1 for WebMatrix 版本資訊
NuGet 2.6 於 2013 年 6 月 26 日發行。
NuGet 2.6 是第一個提供 Visual Studio 2013 支援的版本。 和 Visual Studio 2012 一樣,NuGet 封裝管理員 延伸模組會包含在 Visual Studio 的每個版本中。
為了提供Visual Studio 2013的最佳可能支援,同時仍支援Visual Studio 2010和Visual Studio 2012,並將擴充功能大小維持在盡可能小的情況下,我們會為Visual Studio 2013產生個別的延伸模組,而原始延伸模組會繼續以Visual Studio 2010 和 2012 為目標。
從 NuGet 2.6 開始,我們將發佈兩個延伸模組,如下所示:
- NuGet 封裝管理員 (適用於 Visual Studio 2010 和 2012)
- 適用於 Visual Studio 2013 的 NuGet 封裝管理員
透過此分割, nuget.org 首頁的 [安裝 NuGet] 按鈕會帶您前往 安裝 NuGet 頁面,您可以在其中找到安裝不同 NuGet 用戶端的詳細資訊。
NuGet 用戶端最要求的功能之一,是使用 Visual Studio 建置組態轉換中使用的 XDT 轉換引擎,支援更強大的 XML 轉換。
在 2013 年 4 月,我們針對 XDT 的 NuGet 支援發表了兩項重大公告。 第一個是 XDT 連結庫本身 本身會以 NuGet 套件 和 [open sourced on CodePlex](http://xdt.codeplex.com/)
的形式發行。 此步驟可讓其他開放原始碼軟體自由使用 XDT 引擎,包括 NuGet 用戶端。 第二個公告是支援在 NuGet 用戶端中使用 XDT 引擎進行轉換的計劃。 NuGet 2.6 包含此整合。
為了利用 NuGet 的 XDT 支援,機制看起來與 目前的設定轉換功能類似。 轉換檔案會新增至套件的內容資料夾。 不過,雖然組態轉換同時使用單一檔案進行安裝和卸載,但 XDT 轉換會使用下列檔案,對這兩個程式進行更細緻的控制:
- Web.config.install.xdt
- Web.config.uninstall.xdt
此外,NuGet 會使用檔案後綴來判斷要執行轉換的引擎,因此使用現有 web.config.transforms 的套件將會繼續運作。 XDT 轉換也可以套用至任何 XML 檔案(不只是 web.config),因此您可以針對專案中的其他應用程式利用此轉換。
XDT 的最大優點之一是其 簡單但功能強大的語法 ,用來操作 XML DOM 的結構。 XDT 不是簡單地將一個固定檔結構重疊到另一個結構,而是提供各種方式來比對元素的控件,從簡單的屬性名稱比對到完整的 XPath 支援。 找到相符的元素或一組元素之後,XDT 會提供一組豐富的函式來操作元素,這表示新增、更新或移除屬性、在特定位置放置新元素,或取代或移除整個元素及其子系。
NuGet 的優點之一是,它會將其他大型可執行檔或連結庫分解成一組可整合的模組化元件,而且最重要的是獨立維護及版本設定。 然而,其中一個副作用是,產品或產品系列的傳統想法可能會更加分散。 NuGet 的自定義套件來源功能提供一種方式來組織套件;不過,自定義套件來源無法自行探索。
NuGet 2.6 會藉由搜尋路徑 %ProgramData%/NuGet/Config 下的資料夾階層,來擴充設定 NuGet 的邏輯。產品安裝程式可以在此資料夾下新增自定義 NuGet 組態檔,為其產品註冊自定義套件來源。 此外,資料夾結構支援 IDE 產品、版本甚至 SKU 的語意。 從這些目錄 設定 會依照下列順序套用,並採用「最後一個優先」優先順序策略。
- %ProgramData%\NuGet\Config*.config
- %ProgramData%\NuGet\Config{IDE}*.config
- %ProgramData%\NuGet\Config{IDE}{Version}*.config
- %ProgramData%\NuGet\Config{IDE}{Version}{SKU}*.config
在此清單中,{IDE} 佔位符專屬於執行 NuGet 的 IDE,因此在 Visual Studio 的情況下,它會是 “VisualStudio”。 {Version} 和 {SKU} 占位符是由 IDE 提供(例如,分別 “11.0” 和 “WDExpress”、“VWDExpress” 和 “Pro”。 資料夾接著可以包含許多不同的 *.config 檔案。 因此,ACME 元件公司可以新增自定義套件來源,藉由建立下列檔案路徑,才能在Visual Studio 2012的 Professional和Ultimate版本中顯示:
%ProgramData%\NuGet\Config\VisualStudio\11.0\Pro\acme.config
雖然資料夾結構可讓軟體安裝程式等程式直接將全機器套件來源新增至 NuGet 的設定,但 NuGet 組態對話方塊也已更新為允許將套件來源註冊為使用者特定專案(例如在 %AppData%/NuGet/NuGet.Config 中註冊)或全機器。
Visual Studio 2013 會使用這項功能,其中檔案安裝在:
%ProgramData%\NuGet\Config\VisualStudio\12.0\Microsoft.VisualStudio.config
在此檔案中,會設定名為 「.NET Framework Packages」 的新套件來源。
隨著 NuGet 資源庫所服務的套件數目繼續以指數的速度成長,改善搜尋仍會保留在 NuGet 優先順序清單的頂端。 NuGet 的其中一項計劃功能是內容型搜尋,這表示 NuGet 會使用您所使用的 Visual Studio 版本和 SKU 相關信息,以及您要建置的項目類型,以判斷潛在搜尋結果的相關性。
從 NuGet 2.6 開始,每次安裝套件時,安裝的內容都會記錄為安裝作業數據的一部分。 搜尋也會傳送相同的內容資訊,這可讓 NuGet 資源庫透過內容型安裝趨勢來提升搜尋結果。 NuGet 資源庫的未來更新將啟用此內容相關的相關性提升。
套件作者越來越依賴 NuGet 資源庫所提供的套件統計數據 。 作者所要求的一個重要遺漏數據點是直接套件安裝與相依性安裝之間的差異。 到目前為止,NuGet 用戶端並未針對開發人員直接安裝套件,或是否已安裝以滿足相依性,在安裝作業前後傳送任何內容。 從 NuGet 2.6 開始,該數據現在會針對安裝作業傳送。 NuGet 資源庫上的套件統計數據會將該數據公開為個別安裝作業,並加上 「相依性」後綴。
- 安裝
- Install-Dependency
- 更新
- Update-Dependency
- 重新安裝
- 重新安裝相依性
除了不同的作業名稱之外,也會記錄安裝相依套件標識碼。 NuGet 資源庫的未來更新將會公開報表中的數據,讓套件作者完全了解開發人員如何安裝其套件。
NuGet 2.6 也包含數個 Bug 修正。 如需 NuGet 2.6 中修正的工作專案完整清單,請檢視 [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.6&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0&reasonClosed=All)
。