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 test
dotnet publish
a 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.