Vytvoření balíčku NuGet pomocí rozhraní příkazového řádku .NET

Poznámka:

Následující příklad ukazuje ukázky příkazového řádku pomocí unixu. Příkaz dotnet pack , jak je znázorněno zde, funguje stejně ve Windows.

Očekává se, že knihovny .NET Standard a .NET Core se distribuují jako balíčky NuGet. Ve skutečnosti se všechny knihovny .NET Standard distribuují a využívají. To se s příkazem dotnet pack nejsnážněji provádí.

Představte si, že jste právě napsali úžasnou novou knihovnu, kterou chcete distribuovat přes NuGet. Můžete vytvořit balíček NuGet s nástroji pro různé platformy, které to přesně dělají! Následující příklad předpokládá knihovnu s názvem SuperAwesomeLibrary , která cílí netstandard1.0.

Pokud máte přechodné závislosti, tj. projekt, který závisí na jiném balíčku, před vytvořením balíčku NuGet nezapomeňte obnovit balíčky pro celé řešení pomocí dotnet restore příkazu. Pokud to neuděláte, příkaz dotnet pack nebude správně fungovat.

Nemusíte spouštětdotnet restore, protože se spouští implicitně všemi příkazy, které vyžadují obnovení, například dotnet new, , dotnet build, dotnet run, dotnet testdotnet publisha dotnet pack. Pokud chcete zakázat implicitní obnovení, použijte tuto --no-restore možnost.

Příkaz dotnet restore je stále užitečný v určitých scénářích, kdy explicitní obnovení dává smysl, například sestavení kontinuální integrace ve službě Azure DevOps Services nebo v systémech sestavení, které potřebují explicitně řídit, kdy dojde k obnovení.

Informace o správě informačních kanálů NuGet najdete v dotnet restore dokumentaci.

Po obnovení balíčků můžete přejít do adresáře, ve kterém se nachází knihovna:

cd src/SuperAwesomeLibrary

Pak je to jenom jeden příkaz z příkazového řádku:

dotnet pack

Složka /bin/Debug teď bude vypadat takto:

$ ls bin/Debug
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

Tím se vytvoří balíček, který je schopen ladit. Pokud chcete vytvořit balíček NuGet s binárními soubory vydaných verzí, stačí přidat --configuration přepínač (nebo -c) a použít release ho jako argument.

dotnet pack --configuration release

Složka /bin teď bude obsahovat složku vydané verze obsahující váš balíček NuGet s binárními soubory vydaných verzí:

$ ls bin/release
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

A teď máte potřebné soubory k publikování balíčku NuGet!

Nezaměňujte dotnet pack s dotnet publish

Je důležité si uvědomit, že v žádném okamžiku se nejedná o dotnet publish příkaz. Příkaz dotnet publish slouží k nasazení aplikací se všemi jejich závislostmi ve stejné sadě – ne pro generování balíčku NuGet, který se má distribuovat a využívat prostřednictvím NuGetu.

Viz také