使用 NuGet 和擴充功能 SDK 兩種方式新增參考

使用 NuGet 副檔名給 Visual Studio 或 Software Development Kit (SDK),您可以在 Visual Studio 專案內的消耗提供封裝。 透過描述的相似處和差異兩種機制之間,本主題可協助您選擇最佳一個您的工作。

  • NuGet 是開放原始碼,簡化合併程式庫流程匯入專案方案的套件管理系統。 如需詳細資訊,請參閱 NuGet 概觀

  • Visual Studio SDK 是視為單一參考項目檔案的集合。 [參考管理員] 對話方塊會列出與專案相關的開啟的所有 SDK,就會顯示該對話方塊時。 當您將 SDK 加入至專案時,您可以透過 IntelliSense、 [工具箱],設計工具時, [ [物件瀏覽器]、MSBuild、部署、偵錯和封裝存取該 SDK 內容。 如需 SDKs 的詳細資訊,請參閱 HOW TO:建立軟體開發套件

我應該使用哪個機制?

下表說明您的 SDK 參考的功能與 NuGet 比較參考的功能。

功能

SDK 支援

SDK 注意事項。

NuGet 支援

NuGet 注意事項。

機制參考實體、所有檔案和功能。

Y

使用 [參考管理員] 對話方塊中,您將 SDK,因此,所有檔案和功能開發工作流程期間可供使用。

Y

MSBuild 會自動使用組件和 Windows 中繼資料 (.winmd) 檔案。

Y

在 SDK 中的參考會自動傳遞至編譯器。

Y

MSBuild 會自動使用 .h 或 .lib 檔。

Y

SDKName.props 檔案告知 Visual Studio 如何設定 Visual C++ 目錄,依此類推,自動 .h 或 .lib 檔使用的。

N

MSBuild 會自動使用 .js 或 .css 檔案。

Y

在 [方案總管] 中,您可以展開 JavaScript SDK 參考節點顯示個別的 .js 或 .css 檔案將這些檔案並產生 <source include/> 標記加入至原始程式檔。 SDK 支援 F5 和自動套件設定。

Y

MSBuild 會自動加入至 [工具箱] 的控制項。

Y

在 [工具箱] 索引標籤可使用 SDK 和顯示控制項所指定。

N

這個機制支援擴充功能 (VSIX) Visual Studio 安裝程式。

Y

VSIX 有建立特殊的資訊清單和的邏輯 SDK 套件

Y

VSIX 在另一個安裝程式可以內嵌。

[物件瀏覽器] 的參考。

Y

[物件瀏覽器] 會自動取得 SDK 中的參考清單並加以列舉。

N

檔案和連結會自動加入至 [參考管理員] 對話方塊 (說明連結,等自動填入)

Y

[參考管理員] 對話方塊以協助一起自動列舉 SDK,連接和 SDK 相依性清單。

N

NuGet 提供自己的 [處理 NuGet 套件] 對話方塊。

這個機制支援多個結構。

Y

SDK 可以傳輸多個組態。 MSBuild 使用每一個專案組態的適當的檔案。

N

這個機制支援多個組態。

Y

SDK 可以傳輸多個組態。 根據專案結構, MSBuild 會使用每個專案結構的適當的檔案。

N

這個機制可以指定「複製到」。

Y

根據檔案是否在\ redist 或\ designtime 資料夾中,將檔案複製到使用的應用程式可以控制。

N

要複製的檔案在套件資訊清單中宣告的。

內容會顯示在當地語系化檔案。

Y

定位在 SDK 中的 XML 文件為更好的設計階段經驗會自動併入。

N

MSBuild 同時支援 SDK 中使用多個版本。

Y

同時使用多個版本的 SDK 支援。

N

這不參考。 您不能同時有多 NuGet 檔案的版本在專案中。

這個機制支援指定適用的目標 Framework、Visual Studio 版本和專案類型。

Y

[參考管理員] 對話方塊和 [工具箱] 顯示適用於專案只的 SDK,因此,使用者可以更輕鬆地可選取適當的 SDK。

Y (部分)

樞紐的目標 Framework。 不會在使用者介面中的篩選條件。 安裝時,則會傳回錯誤。

這個機制支援指定登入資訊原生的 WinMDs。

Y

您可以在 SDKManifest.xml 指定 .winmd 檔案和 .dll 檔案之間的關聯。

N

這個機制支援指定相依於其他 SDK。

Y

SDK 只通知使用者;使用者仍然必須安裝並手動參考它們。

Y

NuGet 自動提取它們;使用者不會告知。

這個機制與 Windows 市集 整合概念 (例如應用程式資訊清單和 Framework ID.

Y

SDK 必須傳遞專屬於 市集 ,以便正確包裝和 F5 使用 SDK 可用於市集的概念。

N

這個機制可與 Windows 市集 應用程式的應用程式偵錯管線。

Y

SDK 必須透過 市集專用的概念,以便正確包裝和 F5 使用 SDK 可用在 市集。

Y

NuGet 內容變成一部分的專案。 特殊 F5 考慮不需要的。

這個機制可與應用程式資訊清單。

Y

SDK 必須透過 市集專用的概念,以便正確包裝和 F5 使用 SDK 可用在 市集。

Y

NuGet 內容變成一部分的專案。 特殊 F5 考慮不需要的。

這個機制部署非參考檔案 (例如,將部署執行 Windows 市集 應用程式測試) 的測試架構。

Y

如果將項目放入\ redist 資料夾中的檔案,檔案會自動部署。

Y

這個機制會自動加入 Visual Studio IDE 中的 Platform SDK。

Y

如果您將 Windows 8 SDK 或 Windows 在有特定配置的指定位置給 SDK Phone SDK,自動將與任何 Visual Studio 功能。

N

這個機制支援乾淨的開發人員電腦。 (即不需要安裝,因此,從原始程式碼控制的簡單擷取運作。)

N

由於您參考 SDK,您必須個別簽入您的方案和 SDK。 您可以簽入 MSBuild 逐一查看 SDK 的兩個不註冊預設位置的 SDK (如需詳細資訊,請參閱 HOW TO:建立軟體開發套件)。 或者,,如果自訂位置包含 SDK,您可以在專案檔中指定下列程式碼:

<PropertyGroup>
   <SDKReferenceDirectoryRoot>C:\MySDKs</SDKReferenceDirectoryRoot>
  </PropertyGroup>

然後檢查 SDK 到該位置。

Y

您可以簽出方案,因此, Visual Studio 在檔案立即辨識和動作。

您可以參與套件作者的大型現有社群。

N/A 

第一次 SDK 隨附於 Visual Studio 2012,因此,社群是新的。

Y

您可以參與封裝消費者的大型現有社群。

N/A 

第一次 SDK 隨附於 Visual Studio 2012,因此,社群是新的。

Y

您可以聯結夥伴 (自訂繪製廊,儲存機制生態系統,依此類推)。

N/A 

可用的儲存機制包括 Visual Studio 繪製廊、Microsoft 下載中心和 Windows 市集。

Y

這個機制可與連續整合套件建立和使用的組建伺服器。

Y

SDK 必須透過登錄的位置 (SDKReferenceDirectoryRoot 屬性) 命令列到 MSBuild。

Y

這個機制支援位置櫪 (含) 以前版本封裝版本。

Y

SDK 支援加入多個版本的參考。

Y

這個機制支援安裝套件的自動更新。

Y

如果傳輸為 VSIX 或一部分的 Visual Studio 自動更新, SDK 提供自動通知。

Y

這個機制中建立和使用的套件的獨立的 .exe 檔案。

Y

SDK 包含 MSBuild.exe。

Y

封裝可以簽入至版本控制。

Y

您無法簽入哪些文件節點之外,也就是說,擴充功能 SDK 可能尚未簽入。擴充功能 SDK 的大小可能很大。

Y

您可以使用 PowerShell 介面建立及使用封裝。

Y (使用),其中 N (建立)

建立的 SDK 不會指定發生的裝飾。 使用執行命令列 MSBuild。

Y

您可以為偵錯支援使用符號封裝。

Y

如果將項目放入 SDK 的 .pdb 檔案,它會自動選取。

Y

機制支援套件管理員自動更新。

N/A

取得 SDK 修改與 MSBuild。

Y

這個機制支援輕量型資訊清單格式。

Y

SDKManifest.xml 支援許多屬性,不過,一小部分通常是必要的。

Y

這個機制為所有 Visual Studio 版本可用。

Y

SDK 透過 Visual Studio Ultimate支援所有 Visual Studio 版本,從 Visual Studio Express。

Y

NuGet 支援所有 Visual Studio Express 版,透過 Visual Studio Ultimate。

這個機制為所有專案類型。

N

SDK 只支援 Windows 市集 應用程式在 Visual Studio 2012。

N

您可以檢閱允許的專案清單。

請參閱

概念

管理專案參考