Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln är utformad för att hjälpa utvecklare att välja om de vill paketera sin programvara som ett NuGet-paket eller som ett programutvecklingspaket (SDK). Mer specifikt diskuteras skillnaderna mellan de två när de refereras i ett Visual Studio-projekt.
NuGet är ett pakethanteringssystem med öppen källkod som förenklar processen med att införliva bibliotek i ett projekt. För .NET (inklusive .NET Core) är NuGet den Microsoft-stödda mekanismen för delningskod. NuGet definierar hur paket för .NET skapas, hanteras och används och tillhandahåller verktygen för var och en av dessa roller. I Visual Studio lägger du till NuGet-paket i ett projekt med hjälp av Package Manager användargränssnittet.
En SDK- är en samling filer som Visual Studio behandlar som ett enda referensobjekt. I dialogrutan Referenshanteraren i Visual Studio visas alla SDK:er som är relevanta för det aktuella projektet när du väljer Lägg till referens. När du lägger till en SDK i ett projekt kan du komma åt allt innehåll i SDK:t via IntelliSense, fönstret Verktygslåda, designers, Object Browser, MSBuild, distribution, felsökning och paketering.
Vilken mekanism ska jag använda?
I följande tabell kan du jämföra referensfunktionerna i ett SDK med referensfunktionerna i NuGet.
| Funktion | SDK-stöd | SDK-anteckningar | NuGet support | NuGet-anteckningar |
|---|---|---|---|---|
| Mekanismen refererar till en entitet och sedan är alla filer och funktioner tillgängliga. | Y | Du lägger till en SDK med hjälp av dialogrutan Reference Manager och alla filer och funktioner är tillgängliga under arbetsflödet för utveckling. | Y | |
| MSBuild använder automatiskt sammansättningar och Windows-metadata (.winmd) filer. | Y | Referenser i SDK skickas automatiskt till kompilatorn. | Y | |
| MSBuild använder automatiskt .h- eller .lib-filerna. | Y | Filen SDKName.props anger för Visual Studio hur du konfigurerar katalogen Visual C++ och så vidare för automatisk .h eller .lib filförbrukning. | N | |
| MSBuild använder automatiskt .js- eller .css-filerna. | Y | I Solution Explorerkan du expandera JavaScript SDK-referensnoden för att visa enskilda .js- eller .css-filer och sedan generera <source include/> taggar genom att dra filerna till källfilerna. SDK har stöd för F5 och automatisk paketkonfiguration. |
Y | |
| MSBuild lägger automatiskt till kontrollen i Toolbox-. | Y | Toolbox- kan använda SDK:er och visa kontroller på de flikar som du anger. | N | |
| Mekanismen stöder Visual Studio Installer för tillägg (VSIX). | Y | VSIX har ett särskilt manifest och logik för att skapa SDK-paket | Y | VSIX kan bäddas in i ett annat installationsprogram. |
| Object Browser räknar upp referenser. | Y | Object Browser hämtar automatiskt listan med referenser i SDK:er och räknar upp dem. | N | |
| Filer och länkar läggs automatiskt till i dialogrutan Reference Manager (hjälplänkar och så vidare fylls i automatiskt) | Y | Dialogrutan Reference Manager räknar automatiskt upp SDK:er, tillsammans med hjälplänkar och listan över SDK-beroenden. | N | NuGet innehåller en egen dialogruta Hantera NuGet-paket. |
| Mekanismen stöder flera arkitekturer. | Y | SDK:er kan leverera flera konfigurationer. MSBuild använder lämpliga filer för varje projektkonfiguration. | N | |
| Mekanismen stöder flera konfigurationer. | Y | SDK:er kan leverera flera konfigurationer. Beroende på projektarkitektur använder MSBuild lämpliga filer för varje projektarkitektur. | N | |
| Mekanismen kan ange "att inte kopiera". | Y | Beroende på om filer tas bort i mappen \redist eller \designtime kan du styra vilka filer som ska kopieras till det förbrukande programmets paket. | N | Du deklarerar vilka filer som ska kopieras i paketmanifestet. |
| Innehållet visas i lokaliserade filer. | Y | Lokaliserade XML-dokument i SDK:er ingår automatiskt för en bättre designtidsupplevelse. | N | |
| MSBuild stöder användning av flera versioner av ett SDK samtidigt. | Y | SDK stöder användning av flera versioner samtidigt. | N | Det här är ingen hänvisning. Du kan inte ha fler än en version av NuGet-filer i projektet i taget. |
| Mekanismen har stöd för att ange tillämpliga målramverk, Visual Studio-versioner och projekttyper. | Y | Dialogrutan Reference Manager och Toolbox endast visa de SDK:er som gäller för ett projekt, så att användarna enklare kan välja lämpliga SDK:er. | Y (partiell) | Pivot är målplattformen. Det finns ingen filtrering i användargränssnittet. Vid installationen kan det returnera ett fel. |
| Mekanismen har stöd för att ange registreringsinformation för inhemska WinMDs. | Y | Du kan ange korrelationen mellan .winmd-filen och .dll-filen i SDKManifest.xml. | N | |
| Mekanismen har stöd för att ange beroenden för andra SDK:er. | Y | SDK:et meddelar bara användaren. användaren måste fortfarande installera dem och referera till dem manuellt. | Y | NuGet hämtar dem automatiskt. användaren meddelas inte. |
| Mekanismen integreras med Microsoft Store-begrepp som appmanifest och Framework-ID. | Y | SDK:n måste skicka begrepp som är specifika för Store så att paketering och F5 fungerar korrekt med SDK:er som är tillgängliga i Store. | N | |
| Mekanismen integreras med appfelsökningspipelinen för Windows 8.x Store-appar. | Y | SDK:n måste skicka Store-specifika begrepp så att paketering och F5 fungerar rätt med SDK:er som är tillgängliga i Store. | Y | NuGet-innehåll blir en del av projektet. Ingen särskild F5-hänsyn krävs. |
| Mekanismen integreras med appmanifest. | Y | SDK:n måste skicka Store-specifika begrepp så att paketering och F5 fungerar rätt med SDK:er som är tillgängliga i Store. | Y | NuGet-innehåll blir en del av projektet. Ingen särskild F5-hänsyn krävs. |
| Mekanismen distribuerar icke-referensfiler (till exempel distribuera testramverk där du kan köra tester av Windows 8.x Store-appar). | Y | Om du släpper filerna i mappen \redist distribueras filerna automatiskt. | Y | |
| Mekanismen lägger automatiskt till plattforms-SDK:er i Visual Studio IDE. | Y | Om du släpper Windows 8 SDK eller Windows Phone SDK på en specifik plats med en specifik layout, integreras SDK automatiskt med alla Visual Studio-funktioner. | N | |
| Mekanismen stöder en ren utvecklardator. (Det vill: ingen installation krävs, och enkel hämtning från källkodskontrollen fungerar.) | N | Eftersom du refererar till ett SDK måste du checka in din lösning och SDK separat. Du kan checka in SDK:t från de två standardplatserna för icke-register som MSBuild itererar SDK:er från (mer information finns i Create a Software Development Kit). Alternativt kan du ange följande kod i projektfilen om en anpassad plats består av SDK:erna:<PropertyGroup><SDKReferenceDirectoryRoot>C:\MySDKs</SDKReferenceDirectoryRoot></PropertyGroup>Kontrollera sedan SDK:erna på den platsen. |
Y | Du kan kolla in lösningen och Visual Studio identifierar och agerar direkt på filerna. |
| Du kan ansluta till en stor befintlig grupp med paketförfattare. | Ej tillämpligt | Samhället är nytt. | Y | |
| Du kan ansluta till en stor befintlig grupp med paketkonsumenter. | Ej tillämpligt | Samhället är nytt. | Y | |
| Du kan ansluta till ett ekosystem med partner (anpassade gallerier, lagringsplatser och så vidare). | Ej tillämpligt | Tillgängliga lagringsplatser är Visual Studio Marketplace, Microsoft Download Center och Microsoft Store. | Y | |
| Mekanismen integreras med byggservrar för kontinuerlig integration för både skapande och användning av paket. | Y | SDK:et måste skicka den incheckade platsen (egenskapen SDKReferenceDirectoryRoot) på kommandoraden till MSBuild. | Y | |
| Mekanismen stöder både stabila och förhandsversioner av paketversioner. | Y | SDK har stöd för att lägga till referenser till flera versioner. | Y | |
| Mekanismen stöder automatisk uppdatering för installerade paket. | Y | Om SDK levereras som VSIX eller en del av visual studio-automatiska uppdateringar, tillhandahåller SDK automatiska meddelanden. | Y | |
| Mekanismen innehåller en fristående .exe fil för att skapa och använda paket. | Y | SDK:et innehåller MSBuild.exe. | Y | |
| Paket kan läggas in i versionskontroll. | Y | Du kan inte checka in något utanför noden Dokument, vilket innebär att tilläggs-SDK:erna kanske inte är incheckade. Storleken på SDK för tillägg kan vara stor. | Y | |
| Du kan använda ett PowerShell-gränssnitt för att skapa och använda paket. | Y (förbrukning), N (skapande) | Inga verktyg för att skapa en SDK. Förbrukning kör MSBuild på kommandoraden. | Y | |
| Du kan använda ett symbolpaket för felsökningsstöd. | Y | Om du släpper .pdb-filer i SDK hämtas filerna automatiskt. | Y | |
| Mekanismen stöder automatiska uppdateringar av pakethanteraren. | Ej tillämpligt | SDK:et revideras med MSBuild. | Y | |
| Mekanismen stöder ett enkelt manifestformat. | Y | SDKManifest.xml stöder många attribut, men en liten delmängd är vanligtvis nödvändig. | Y | |
| Mekanismen är tillgänglig för alla Visual Studio-utgåvor. | Y | SDK stöder alla Visual Studio-utgåvor. | Y | NuGet stöder alla Visual Studio-utgåvor. |