Sdílet prostřednictvím


NuGet versus SDK jako referenční projekt

Tento článek je navržený tak, aby vývojářům pomohl rozhodnout se, jestli se má software zabalit jako balíček NuGet nebo jako sada SDK (Software Development Kit). Konkrétně popisuje rozdíly mezi těmito dvěma, když jsou odkazovány v projektu sady Visual Studio.

  • NuGet je opensourcový systém pro správu balíčků, který zjednodušuje proces začlenění knihoven do projektu. Pro .NET (včetně .NET Core) je NuGet mechanismus pro sdílení kódu podporovaný Microsoftem. NuGet definuje, jak se balíčky pro .NET vytvářejí, hostují a využívají, a poskytují nástroje pro každou z těchto rolí. V sadě Visual Studio přidáte balíčky NuGet do projektu pomocí Správce balíčků uživatelské rozhraní.

  • Sada SDK je kolekce souborů, které Visual Studio považuje za jedinou referenční položku. Dialogové okno Správce odkazů v aplikaci Visual Studio obsahuje seznam všech sad SDK, které jsou relevantní pro aktuální projekt, když zvolíte Přidat odkaz. Když do projektu přidáte sadu SDK, budete mít přístup ke všemu obsahu této sady SDK prostřednictvím technologie IntelliSense, okna sady nástrojů, návrhářů, prohlížeče objektů, nástroje MSBuild, nasazení, ladění a balení.

Jaký mechanismus mám použít?

Následující tabulka vám pomůže porovnat odkazující funkce sady SDK s odkazujícími funkcemi NuGetu.

Funkce Podpora sady SDK Poznámky k sadě SDK Podpora NuGetu Poznámky NuGet
Mechanismus odkazuje na jednu entitu a pak jsou k dispozici všechny soubory a funkce. Y Sadu SDK přidáte pomocí dialogového okna správce odkazů a všechny soubory a funkce jsou k dispozici během vývojového pracovního postupu. Y
Nástroj MSBuild automaticky využívá sestavení a soubory metadat systému Windows (.winmd). Y Odkazy v sadě SDK se automaticky předávají kompilátoru. Y
Nástroj MSBuild automaticky využívá soubory .h nebo .lib. Y Soubor SDKName.props určuje sadě Visual Studio, jak nastavit adresář Visual C++ a další parametry pro automatické využití souborů .h nebo .lib. N
Nástroj MSBuild automaticky využívá soubory .js nebo .css. Y Ve Průzkumníku řešenímůžete rozbalit referenční uzel sady JavaScript SDK, abyste zobrazili jednotlivé .js nebo .css soubory, a poté vytvořte <source include/> značky přetažením těchto souborů do jejich zdrojových souborů. Sada SDK podporuje F5 a automatické nastavení balíčků. Y
MSBuild automaticky přidá ovládací prvek do nástrojové lišty. Y Sada nástrojů může používat sady SDK a zobrazit ovládací prvky na kartách, které určíte. N
Mechanismus podporuje Instalační program sady Visual Studio pro rozšíření (VSIX). Y VSIX má speciální manifest a logiku pro vytváření balíčků SDK. Y VSIX lze vložit do jiného instalačního programu.
Prohlížeč objektů vyčísluje odkazy. Y Prohlížeč objektů automaticky získá seznam odkazů v sadách SDK a vytvoří jejich výčet. N
Soubory a odkazy se automaticky přidávají do dialogového okna Reference Manager (automaticky se tam doplňují odkazy nápovědy a podobně) Y Dialogové okno Správce odkazů automaticky vypíše seznam sad SDK spolu s odkazy na nápovědu a seznamem závislostí sad SDK. N NuGet poskytuje vlastní dialogové okno Spravovat balíčky NuGet.
Mechanismus podporuje více architektur. Y Sady SDK můžou dodávat více konfigurací. Nástroj MSBuild využívá příslušné soubory pro každou konfiguraci projektu. N
Mechanismus podporuje více konfigurací. Y Sady SDK můžou dodávat více konfigurací. V závislosti na architektuře projektu nástroj MSBuild využívá příslušné soubory pro každou architekturu projektu. N
Mechanismus může určit, že se nemá kopírovat. Y V závislosti na tom, jestli jsou soubory ve složce \redist nebo \designtime, můžete určit, které soubory se mají kopírovat do balíčku využívající aplikace. N Deklarujete, které soubory se mají kopírovat v manifestu balíčku.
Obsah se zobrazí v lokalizovaných souborech. Y Lokalizované dokumenty XML v sadách SDK se automaticky zahrnou pro lepší zážitek při návrhu. N
NÁSTROJ MSBuild podporuje současné využívání více verzí sady SDK. Y Sada SDK podporuje současné využívání více verzí. N Tohle není odkazování. V projektu nemůžete mít současně více než jednu verzi souborů NuGet.
Mechanismus podporuje zadávání příslušných cílových architektur, verzí sady Visual Studio a typů projektů. Y Dialogové okno Správce odkazů a sada nástrojů zobrazují pouze sady SDK, které platí pro projekt, aby uživatelé mohli snadněji zvolit příslušné sady SDK. Y (částečná) Pivot je cílový rámec. Uživatelské rozhraní neobsahuje žádné filtrování. V době instalace může vrátit chybu.
Mechanismus podporuje zadání registračních údajů pro nativní winMD. Y V SDKManifest.xmlmůžete určit korelaci mezi souborem .winmd a souborem .dll . N
Mechanismus podporuje zadávání závislostí na jiných sadách SDK. Y Sada SDK uživatele pouze upozorní; uživatel je stále musí nainstalovat a odkazovat na ně ručně. Y NuGet je automaticky načítá; uživatel není upozorněn.
Mechanismus se integruje s koncepty Microsoft Storu, jako jsou manifest aplikace a ID rozhraní. Y Sada SDK musí předat koncepty specifické pro úložiště, aby balení a F5 správně fungovaly se sadami SDK, které jsou k dispozici v úložišti. N
Mechanismus se integruje s kanálem ladění aplikací pro aplikace pro Windows 8.x Store. Y Sada SDK musí předat koncepty specifické pro Store, aby balíčkování a F5 správně fungovaly se sadami SDK dostupnými ve Storu. Y Obsah NuGet se stane součástí projektu. Není potřeba brát v úvahu žádné zvláštní požadavky F5.
Mechanismus se integruje s manifesty aplikací. Y Sada SDK musí předat koncepty specifické pro Obchod, aby balení a F5 správně fungovaly se sadami SDK dostupnými v Obchodě. Y Obsah NuGet se stane součástí projektu. Není potřeba brát v úvahu žádné zvláštní požadavky F5.
Mechanismus nasadí jiné než referenční soubory (například nasaďte testovací architekturu, na které se mají spouštět testy aplikací pro Windows 8.x Store). Y Pokud soubory přehodíte do složky \redist, soubory se automaticky nasadí. Y
Mechanismus automaticky přidá sady SDK platformy v integrovaném vývojovém prostředí sady Visual Studio. Y Pokud umístíte Windows 8 SDK nebo Windows Phone SDK do určitého umístění s konkrétním rozložením, SDK se automaticky integruje se všemi funkcemi sady Visual Studio. N
Mechanismus podporuje čistý vývojářský počítač. (To znamená, že není nutná žádná instalace a jednoduché načtení ze správy zdrojového kódu bude fungovat.) N Protože odkazujete na SDK, musíte své řešení a SDK odevzdat samostatně. Můžete zkontrolovat sadu SDK ze dvou výchozích umístění, která nejsou registry a ze kterých MSBuild iteruje sady SDK (podrobnosti najdete v tématu Vytvoření sady pro vývoj softwaru). Jako alternativu, pokud vlastní umístění obsahuje sady SDK, můžete do souboru projektu zadat následující kód:

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

Pak zkontrolujte sady SDK do daného umístění.
Y Řešení si můžete prohlédnout a Visual Studio okamžitě rozpoznává a pracuje se soubory.
Můžete se připojit k rozsáhlé komunitě autorů balíčků. Není k dispozici Komunita je nová. Y
Můžete se připojit k rozsáhlé komunitě příjemců balíčků. Není k dispozici Komunita je nová. Y
Můžete se připojit k ekosystému partnerů (vlastní galerie, úložiště atd.). Není k dispozici Dostupná úložiště zahrnují Visual Studio Marketplace, Microsoft Download Center a Microsoft Store. Y
Tento mechanismus se integruje s buildovacími servery pro nepřetržitou integraci jak pro vytváření, tak i použití balíčků. Y Sada SDK musí předat vrácené umístění se změnami (vlastnost SDKReferenceDirectoryRoot) na příkazovém řádku do nástroje MSBuild. Y
Mechanismus podporuje stabilní i předběžné verze balíčků. Y Sada SDK podporuje přidávání odkazů na více verzí. Y
Mechanismus podporuje automatickou aktualizaci nainstalovaných balíčků. Y Pokud se dodává jako VSIX nebo část automatických aktualizací sady Visual Studio, sada SDK poskytuje automatická oznámení. Y
Mechanismus obsahuje samostatný soubor .exe pro vytváření a využívání balíčků. Y Sada SDK obsahuje MSBuild.exe. Y
Balíčky je možné zkontrolovat ve správě verzí. Y Nemůžete odeslat nic mimo uzel Dokumenty, což znamená, že rozšiřující sady SDK nemusí být odeslány. Velikost sady SDK rozšíření může být velká. Y
K vytváření a využívání balíčků můžete použít rozhraní PowerShellu. Y (spotřeba), N (vytvoření) Žádné nástroje pro vytvoření sady SDK. Spotřeba spouští nástroj MSBuild na příkazovém řádku. Y
Balíček symbolů můžete použít k podpoře ladění. Y Pokud do sady SDK přenesete soubory .pdb, soubory se automaticky zpracují. Y
Mechanismus podporuje automatické aktualizace správce balíčků. Není k dispozici Sada SDK se reviduje pomocí nástroje MSBuild. Y
Mechanismus podporuje jednoduchý formát manifestu. Y SDKManifest.xml podporuje mnoho atributů, ale obvykle je nutná malá podmnožina. Y
Mechanismus je k dispozici pro všechny edice sady Visual Studio. Y Sada SDK podporuje všechny edice sady Visual Studio. Y NuGet podporuje všechny edice sady Visual Studio.