Sdílet prostřednictvím


Rychlý start: Vytvoření a publikování balíčku NuGet pomocí sady Visual Studio (jenom Windows)

Pomocí sady Microsoft Visual Studio můžete vytvořit balíček NuGet z knihovny tříd .NET a pak ho publikovat do nuget.org pomocí nástroje rozhraní příkazového řádku.

Rychlý start je určený jenom pro uživatele Windows. Pokud používáte Mac, použijte rozhraní příkazového řádku.NET CLI.

Požadavky

  • Nainstalujte Visual Studio 2022 pro Windows s úlohou související s .NET Core.

    Edici Community 2022 můžete nainstalovat zdarma z visualstudio.microsoft.comnebo můžete použít edici Professional nebo Enterprise.

    Visual Studio 2017 a novější automaticky obsahuje funkce NuGet, když instalujete .NET-související pracovní vytížení.

  • Pokud rozhraní příkazového řádku .NET ještě není nainstalované, nainstalujte ho.

    Pro Visual Studio 2017 a novější se rozhraní .NET CLI automaticky nainstaluje se všemi úlohami souvisejícími s .NET Core. V opačném případě nainstalujte .NET Core SDK, abyste získali rozhraní příkazového řádku .NET. Rozhraní příkazového řádku .NET je vyžadováno pro projekty .NET, které používají formát SDK ve stylu (atribut SDK). Výchozí šablona knihovny tříd .NET v sadě Visual Studio 2017 a novější používá atribut SDK.

    Důležitý

    Pokud pracujete s projektem bez sady SDK, postupujte podle postupů v tématu Vytvoření a publikování balíčku .NET Framework (Visual Studio) místo toho vytvořte a publikujte balíček. Pro účely tohoto článku se doporučuje rozhraní .NET CLI. I když můžete publikovat libovolný balíček NuGet pomocí rozhraní příkazového řádku NuGet, některé kroky v tomto článku jsou specifické pro projekty ve stylu sady SDK a rozhraní příkazového řádku .NET. Rozhraní příkazového řádku NuGet se používá pro projekty mimo styl sady SDK (obvykle .NET Framework rozhraní).

  • zaregistrovat bezplatný účet na nuget.org, pokud ho ještě nemáte. Před nahráním balíčku NuGet musíte účet zaregistrovat a potvrdit.

  • Nainstalujte rozhraní příkazového řádku NuGet stažením z nuget.org. Přidejte soubor nuget.exe do vhodné složky a přidejte ji do proměnné prostředí PATH.

Vytvořte projekt knihovny tříd

Pro kód, který chcete zabalit, můžete použít existující projekt knihovny tříd .NET, nebo můžete vytvořit následující projekt:

  1. V sadě Visual Studio vyberte Soubor>Nový>Projekt.

  2. V okně Vytvořit nový projekt vyberte v rozevíracích seznamech C#, Windowsa knihovnu.

  3. Ve výsledném seznamu šablon projektů vyberte knihovnu tříd (s popisem Projekt pro vytvoření knihovny tříd, která cílí na .NET nebo .NET Standard), a pak vyberte Další.

  4. V okně Konfigurovat nový projekt zadejte AppLogger pro název projektua pak vyberte Další.

  5. V okně Další informace vyberte nejprve odpovídajícíFramework a poté zvolte Vytvořit.

    Pokud si nejste jistí, kterou architekturu vybrat, je nejnovější vhodnou volbou a můžete ji později snadno změnit. Informace o tom, kterou architekturu použít, najdete v tématu Kdy cílit na .NET 5.0 nebo .NET 6.0 vs. .NET Standard.

  6. Aby bylo zajištěno správné vytvoření projektu, vyberte Sestavit>Řešení sestavení. Knihovna DLL se nachází ve složce Debug (nebo Release, pokud místo toho sestavíte tuto konfiguraci).

  7. (Volitelné) Pro účely tohoto rychlého startu nemusíte psát žádný další kód balíčku NuGet, protože knihovna tříd šablony stačí k vytvoření balíčku. Pokud ale chcete pro balíček nějaký funkční kód, uveďte následující kód:

    namespace AppLogger
    {
        public class Logger
        {
            public void Log(string text)
            {
                Console.WriteLine(text);
            }
        }
    }
    

Konfigurace vlastností balíčku

Po vytvoření projektu můžete vlastnosti balíčku NuGet nakonfigurovat pomocí následujícího postupu:

  1. Vyberte projekt v Průzkumníku řešenía pak vyberte Název projektu><název projektu> Vlastnosti, kde <název projektu> je název projektu.

  2. Nejprve rozbalte uzel Balíček a pak vyberte Obecné.

    Uzel balíčku se zobrazí pouze pro projekty ve stylu SDK ve Visual Studiu. Pokud cílíte na projekt, který není stylem sady SDK (obvykle .NET Framework), buď migrujte projekt, nebo se podívejte na Vytvoření a publikování balíčku .NET Framework pro podrobné pokyny.

    Snímek obrazovky znázorňující vlastnosti balíčku NuGet v projektu sady Visual Studio

  3. U balíčků vytvořených pro veřejnou spotřebu věnujte zvláštní pozornost vlastnosti Značky, protože značky pomáhají ostatním uživatelům najít váš balíček a pochopit, co dělá.

  4. Dejte svému balíčku jedinečný ID a vyplňte jakékoli další požadované vlastnosti. Tabulka, která ukazuje, jak vlastnosti nástroje MSBuild (projekty ve stylu sady SDK) mapují na vlastnosti souboru .nuspec, viz balíčkové cíle . Popis vlastností souboru .nuspec naleznete v .nuspec soubor odkaz. Všechny tyto vlastnosti přejdou do manifestu .nuspec, který Visual Studio pro projekt vytvoří.

    Důležitý

    Balíčku musíte dát jedinečný identifikátor pro nuget.org nebo hostitele, kterého používáte. V opačném případě dojde k chybě. Pro účely tohoto rychlého startu doporučujeme zahrnout ukázkové nebo testovací v názvu, protože krok publikování balíček veřejně zviditelní.

  5. (Volitelné) Pokud chcete zobrazit vlastnosti přímo v souboru projektu AppLogger.csproj, vyberte Projekt>Upravit soubor projektu.

    Karta AppLogger.csproj se načte.

    Tato možnost je dostupná od sady Visual Studio 2017 pro projekty, které používají atribut stylu sady SDK. U starších verzí Visual Studio je nutné vybrat Project>Vyložit projekt, abyste mohli soubor projektu upravit.

Spuštění příkazu pack

Chcete-li vytvořit balíček NuGet z projektu, postupujte takto:

  1. Vyberte správce konfigurace>buildua potom nastavte konfiguraci aktivního řešení na Verze.

  2. Vyberte projekt AppLogger v průzkumníku řešení a pak vyberte Pack .

    Visual Studio projekt sestaví a vytvoří soubor .nupkg.

  3. Prohlédněte si okno Výstup pro podrobnosti, které obsahují cestu k souboru balíčku. V tomto příkladu se vytvořené sestavení nachází v bin\Release\net6.0, co odpovídá cílové platformě .NET 6.0.

    1>------ Build started: Project: AppLogger, Configuration: Release Any CPU ------
    1>AppLogger -> d:\proj\AppLogger\AppLogger\bin\Release\net6.0\AppLogger.dll
    1>Successfully created package 'd:\proj\AppLogger\AppLogger\bin\Release\AppLogger.1.0.0.nupkg'.
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    
  4. Pokud v nabídce nevidíte příkaz Pack, váš projekt pravděpodobně není projektem ve stylu sady SDK a potřebujete použít rozhraní příkazového řádku NuGet. Buď migrujte projekt a používejte .NET CLI, nebo se podívejte na vytvoření a publikování balíčku pro .NET Framework pro podrobné pokyny.

(Volitelné) Generování balíčku při sestavení

Sadu Visual Studio můžete nakonfigurovat tak, aby při sestavování projektu automaticky vygenerovala balíček NuGet:

  1. V Průzkumníka řešení vyberte projekt a pak vyberte Název projektu><název projektu> Vlastnosti, kde <název projektu> je název projektu (v tomto případě AppLogger).

  2. Rozbalte uzel Balíček, vyberte možnost Obecné, a poté zvolte Generovat balíček NuGet při sestavení.

    Snímek obrazovky znázorňující vlastnosti balíčku s vybranou možností Generovat balíček NuGet při sestavení

Poznámka

Při automatickém vygenerování balíčku se tím zvýší celková doba sestavení pro váš projekt.

(Volitelné) Balení s nástrojem MSBuild

Jako alternativu k použití příkazu nabídky Pack podporují NuGet 4.x+ a MSBuild 15.1+ použití cíle pack, pokud projekt obsahuje potřebná data balíčku.

  1. Po otevření projektu v průzkumníku řešení otevřete příkazový řádek výběrem Tools>Command Line>Developer Command Prompt.

    Příkazový řádek se otevře v adresáři projektu.

  2. Spusťte následující příkaz: msbuild -t:pack.

Další informace naleznete v tématu Vytvoření balíčku pomocí nástroje MSBuild.

Publikování balíčku

Po vytvoření souboru .nupkg ho publikujte do nuget.org pomocí rozhraní příkazového řádku .NET nebo rozhraní příkazového řádku NuGet společně s klíčem rozhraní API získaným z nuget.org.

Poznámka

  • Nuget.org prohledá všechny nahrané balíčky viry a odmítne balíčky, pokud najde nějaké viry. Nuget.org také pravidelně prohledá všechny existující uvedené balíčky.

  • Balíčky, které publikujete do nuget.org, jsou veřejně viditelné ostatním vývojářům, pokud je nezadáte. Pokud chcete balíčky hostovat soukromě, viz "Hostovat vlastní kanály NuGet".

Získání klíče rozhraní API

Před publikováním balíčku NuGet vytvořte klíč rozhraní API:

  1. pokud ho ještě nemáte, přihlaste se ke svému účtu nuget.org nebo vytvořte účet.

  2. Vyberte své uživatelské jméno v pravém horním rohu a poté vyberte Klíče API.

  3. Vyberte Vytvořita zadejte název klíče.

  4. V části Vybrat oboryvyberte Odeslat.

  5. V části Vybrat balíčky>vzor globuzadejte *.

  6. Vyberte Vytvořit.

  7. Vyberte Kopírovat a zkopírujte nový klíč.

    snímek obrazovky znázorňující nový klíč rozhraní API s tlačítkem Kopírovat

Důležitý

  • Vždy udržujte klíč rozhraní API tajným kódem. Klíč rozhraní API je jako heslo, které umožňuje každému spravovat balíčky vaším jménem. Pokud se klíč rozhraní API omylem odhalí, odstraňte ho nebo vygenerujte znovu.
  • Uložte klíč do zabezpečeného umístění, protože klíč později nemůžete zkopírovat. Pokud se vrátíte na stránku klíče rozhraní API, musíte klíč znovu vygenerovat a zkopírovat ho. Klíč rozhraní API můžete také odebrat, pokud už nechcete nasdílet balíčky.

umožňuje vytvářet samostatné klíče rozhraní API pro různé účely. Každý klíč má časový rámec vypršení platnosti a klíč můžete nastavit na konkrétní balíčky nebo vzory globu. Každý klíč také definujete na konkrétní operace: Nasdílíte nové balíčky a verze balíčků, nasdílíte jenom nové verze balíčků nebo zrušíte seznam.

Pomocí vymezení můžete vytvořit klíče rozhraní API pro různé osoby, které spravují balíčky pro vaši organizaci, aby měly jen potřebná oprávnění.

Další informace najdete v tématu klíče rozhraní API s vymezeným oborem.

Publikování pomocí .NET CLI nebo NuGet CLI

Každý z následujících nástrojů rozhraní příkazového řádku umožňuje odeslat balíček na server a publikovat ho. Vyberte záložku pro svůj nástroj příkazového řádku, buď .NET CLI nebo NuGet CLI.

Použití rozhraní příkazového řádku .NET (dotnet.exe) je doporučenou alternativou k použití rozhraní příkazového řádku NuGet.

Ze složky, která obsahuje soubor .nupkg, spusťte následující příkaz. Zadejte .nupkg název souboru a nahraďte hodnotu klíče klíčem rozhraní API.

dotnet nuget push Contoso.08.28.22.001.Test.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.json

Výstup zobrazuje výsledky procesu publikování:

Pushing Contoso.08.28.22.001.Test.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/nuget/authoring-best-practices#licensing.
  Created https://www.nuget.org/api/v2/package/ 1221ms
Your package was pushed.

Další informace najdete v tématu dotnet nuget push.

Poznámka

Pokud se chcete vyhnout zveřejnění vašeho testovacího balíčku na nuget.org, můžete jej odeslat na testovací stránku nuget.org na https://int.nugettest.org. Mějte na paměti, že balíčky nahrané na int.nugettest.org nemusí být uchovány.

Chyby publikování

Chyby z příkazu push obvykle značí problém. Možná jste například zapomněli aktualizovat číslo verze v projektu, takže se pokoušíte publikovat balíček, který už existuje.

Zobrazí se také chyby, pokud je váš klíč rozhraní API neplatný nebo vypršela jeho platnost, nebo pokud se pokusíte publikovat balíček pomocí identifikátoru, který už na hostiteli existuje. Předpokládejme například, že identifikátor AppLogger-test již v nuget.org existuje. Pokud se pokusíte publikovat balíček s tímto identifikátorem, příkaz push zobrazí následující chybu:

Response status code does not indicate success: 403 (The specified API key is invalid,
has expired, or does not have permission to access the specified package.).

Pokud se zobrazí tato chyba, zkontrolujte, že používáte platný klíč rozhraní API, jehož platnost nevypršela. Pokud ano, znamená to, že identifikátor balíčku již na hostiteli existuje. Pokud chcete chybu opravit, změňte identifikátor balíčku tak, aby byl jedinečný, znovu sestavte projekt, znovu vytvořte soubor .nupkg a opakujte příkaz push.

Správa publikovaného balíčku

Po úspěšném publikování balíčku obdržíte potvrzovací e-mail. Pokud chcete zobrazit právě publikovaný balíček, vyberte v nuget.orguživatelské jméno v pravém horním rohu a pak vyberte Spravovat balíčky.

Poznámka

Může chvíli trvat, než se váš balíček indexuje a zobrazí se ve výsledcích hledání, kde ho můžou najít jiní uživatelé. Během této doby se balíček zobrazí v části Nezasílané balíčkya na stránce balíčku se zobrazí následující zpráva:

snímek obrazovky se zprávou publikování, která se zobrazí při nahrání balíčku do nuget.org

Teď jste publikovali balíček NuGet na nuget.org, který můžou ostatní vývojáři používat ve svých projektech.

Pokud jste vytvořili balíček, který není užitečný (například tento ukázkový balíček vytvořený s prázdnou knihovnou tříd), nebo se rozhodnete, že nechcete, aby byl balíček viditelný, můžete zrušit seznam balíčku a skrýt ho ve výsledcích hledání:

  1. Jakmile se balíček zobrazí v části Publikované balíčky na stránce Spravovat balíčky, vyberte ikonu tužky vedle výpisu balíčku.

    Snímek obrazovky, který ukazuje ikonu Upravit pro výpis balíčku na nuget.org.

  2. Na další stránce zaškrtněte políčko Výpis, zrušte výběr seznamu ve výsledcích hledání a pak vyberte Uložit.

    Snímek obrazovky, který zobrazuje zrušení zaškrtnutí políčka Seznam balíčku na nuget.org

Balíček se teď zobrazí v části Nezařazené balíčky v Spravovat balíčky a ve výsledcích hledání se už nezobrazí.

Poznámka

Aby se zabránilo zveřejnění testovacího balíčku na nuget.org, můžete ho nahrát na zkušební web nuget.org pomocí https://int.nugettest.org. Mějte na paměti, že balíčky nahrané na int.nugettest.org nemusí být zachovány.

Přidání souboru readme nebo jiného souboru

Pokud chcete přímo zadat soubory, které se mají zahrnout do balíčku, upravte soubor projektu a přidejte vlastnost content:

<ItemGroup>
  <Content Include="readme.txt">
    <Pack>true</Pack>
    <PackagePath>\</PackagePath>
  </Content>
</ItemGroup>

V tomto příkladu vlastnost určuje soubor s názvem readme.txt v kořenovém adresáři projektu. Visual Studio zobrazí obsah tohoto souboru jako prostý text hned po instalaci balíčku. Soubory Readme se nezobrazují pro balíčky nainstalované jako závislosti. Tady je například soubor readme pro balíček HtmlAgilityPack:

1 ----------------------------------------------------
2 ---------- Html Agility Pack Nuget Readme ----------
3 ----------------------------------------------------
4
5 ----Silverlight 4 and Windows Phone 7.1+ projects-----
6 To use XPATH features: System.Xml.Xpath.dll from the 3 Silverlight 4 SDK must be referenced.
7 This is normally found at
8 %ProgramFiles(x86)%\Microsoft SDKs\Microsoft SDKs\Silverlight\v4.0\Libraries\Client
9 or
10 %ProgramFiles%\Microsoft SDKs\Microsoft SDKs\Silverlight\v4.0\Libraries\Client
11
12 ----Silverlight 5 projects-----
13 To use XPATH features: System.Xml.Xpath.dll from the Silverlight 5 SDK must be referenced.
14 This is normally found at
15 %ProgramFiles(x86)%\Microsoft SDKs\Microsoft SDKs\Silverlight\v5.0\Libraries\Client
16 or
17 %ProgramFiles%\Microsoft SDKs\Microsoft SDKs\Silverlight\v5.0\Libraries\Client

Poznámka

Pokud do kořenového adresáře projektu přidáte pouze readme.txt bez zahrnutí do vlastnosti content souboru projektu, nebude součástí balíčku.

Najděte videa NuGet na Channel 9 a YouTube.

Blahopřejeme k vytvoření balíčku NuGet pomocí knihovny tříd sady Visual Studio .NET. V dalším článku se dozvíte, jak vytvořit balíček NuGet pomocí rozhraní Visual Studio .NET Framework.

Další možnosti, které NuGet nabízí, najdete v následujících článcích: