pack — polecenie (interfejs wiersza polecenia NuGet)
Dotyczy: tworzenie pakietów • Obsługiwane wersje: 2.7+
Tworzy pakiet NuGet na podstawie określonego pliku nuspec lub projektu. Polecenie dotnet pack
(zobacz dotnet Commands) i msbuild -t:pack
(zobacz obiekty docelowe MSBuild) może być używane jako alternatywne.
Ważne
Użyj polecenia dotnet pack
lub msbuild -t:pack
w przypadku projektów opartych na elemencie PackageReference . Począwszy od pakietu NuGet w wersji 6.5 lub nowszej, polecenie pakietu spowoduje błąd podczas próby spakowania tych typów projektów. Wcześniejsze wersje podejmą próbę spakowania, ale wygenerowany pakiet może nie być poprawny.
W obszarze Mono tworzenie pakietu z pliku projektu nie jest obsługiwane. Należy również dostosować ścieżki inne niż lokalne w .nuspec
pliku do ścieżek w stylu unix, ponieważ nuget.exe nie konwertuje samych nazw ścieżek systemu Windows.
Użycie
nuget pack <nuspecPath | projectPath> [options] [-Properties ...]
gdzie <nuspecPath>
i <projectPath>
określ .nuspec
odpowiednio plik lub projektu.
Opcje
-BasePath
Ustawia ścieżkę podstawową plików zdefiniowanych w pliku nuspec .
-Build
Określa, że projekt powinien zostać skompilowany przed utworzeniem pakietu.
-ConfigFile
Plik konfiguracji NuGet do zastosowania. Jeśli nie zostanie określony,
%AppData%\NuGet\NuGet.Config
(Windows) lub~/.config/NuGet/NuGet.Config
~/.nuget/NuGet/NuGet.Config
(Mac/Linux) zostanie użyty.-Exclude
Określa co najmniej jeden wzorzec wieloznaczny do wykluczenia podczas tworzenia pakietu. Aby określić więcej niż jeden wzorzec, powtórz flagę -Exclude. Zobacz poniższe przykłady.
-ExcludeEmptyDirectories
Zapobiega dołączaniu pustych katalogów podczas kompilowania pakietu.
-ForceEnglishOutput
(3,5+) Wymusza nuget.exe uruchamiania przy użyciu niezmiennej kultury opartej na języku angielskim.
-?|-help
Wyświetla informacje pomocy dotyczące polecenia .
-IncludeReferencedProjects
Wskazuje, że utworzony pakiet powinien zawierać odwołania do projektów jako zależności lub jako część pakietu. Jeśli przywoływany projekt ma odpowiedni
.nuspec
plik o takiej samej nazwie jak projekt, ten przywoływany projekt zostanie dodany jako zależność. W przeciwnym razie w ramach pakietu zostanie dodany przywoływany projekt.-InstallPackageToOutputPath
Określ, czy polecenie powinno przygotować katalog wyjściowy pakietu do obsługi udziału jako źródła danych.
-MinClientVersion
Ustaw atrybut minClientVersion dla utworzonego pakietu. Ta wartość zastąpi wartość istniejącego atrybutu minClientVersion (jeśli istnieje) w
.nuspec
pliku.-MSBuildPath
(4.0+) Określa ścieżkę msBuild do użycia z poleceniem, pierwszeństwo przed
-MSBuildVersion
.-MSBuildVersion
(3.2+) Określa wersję programu MSBuild, która ma być używana z tym poleceniem. Obsługiwane wartości to 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. Domyślnie program MSBuild w ścieżce jest wybierany, w przeciwnym razie domyślnie jest to najwyższa zainstalowana wersja programu MSBuild.
-NoDefaultExcludes
Zapobiega domyślnemu wykluczeniu plików pakietów NuGet i plików i folderów rozpoczynających się od kropki, takiej jak
.svn
i.gitignore
.-NonInteractive
Pomija monity dotyczące danych wejściowych lub potwierdzanych przez użytkownika.
-NoPackageAnalysis
Określa, że pakiet nie powinien uruchamiać analizy pakietów po utworzeniu pakietu.
-OutputDirectory
Określa folder, w którym jest przechowywany utworzony pakiet. Jeśli nie określono żadnego folderu, używany jest bieżący folder.
-OutputFileNamesWithoutVersion
Określ, czy polecenie powinno przygotować nazwę wyjściową pakietu bez wersji.
-PackagesDirectory
Określa folder packages.
-p|-Properties
Powinien pojawić się ostatnio w wierszu polecenia po innych opcjach. Określa listę właściwości, które zastępują wartości w pliku projektu; Zobacz Typowe właściwości projektu MSBuild dla nazw właściwości. Argument Właściwości jest tutaj listą par token=value rozdzielonych średnikami, gdzie każde wystąpienie
$token$
pliku.nuspec
zostanie zastąpione daną wartością. Wartości mogą być ciągami w cudzysłowie. Należy pamiętać, że dla właściwości "Konfiguracja" wartość domyślna to "Debugowanie". Aby zmienić konfigurację wydania, użyj polecenia-Properties Configuration=Release
. Ogólnie rzecz biorąc, właściwości powinny być takie same, które były używane podczas odpowiedniej kompilacji projektu, aby uniknąć potencjalnie dziwnego zachowania.-SolutionDirectory
Określa katalog rozwiązania.
-Suffix
(3.4.4+) Dołącza sufiks do wewnętrznie wygenerowanego numeru wersji, zwykle używany do dołączania kompilacji lub innych identyfikatorów wersji wstępnej. Na przykład użycie metody
-suffix nightly
spowoduje utworzenie pakietu z numerem wersji, na przykład1.2.3-nightly
. Sufiksy muszą zaczynać się literą, aby uniknąć ostrzeżeń, błędów i potencjalnych niezgodności z różnymi wersjami pakietów NuGet i nuGet Menedżer pakietów.-SymbolPackageFormat
Podczas tworzenia pakietu symboli można wybrać format
snupkg
isymbols.nupkg
.-Symbols
Określa, że pakiet zawiera źródła i symbole. W przypadku użycia z plikiem spowoduje to utworzenie zwykłego
.nuspec
pliku pakietu NuGet i odpowiedniego pakietu symboli. Domyślnie tworzy starszy pakiet symboli. Nowy zalecany format pakietów symboli to .snupkg. Zobacz Tworzenie pakietów symboli (.snupkg).-Tool
Określa, że pliki wyjściowe projektu powinny zostać umieszczone w
tools
folderze w pakiecie.-Verbosity [normal|quiet|detailed]
Określa ilość szczegółów wyświetlanych w danych wyjściowych:
normal
(wartość domyślna),quiet
lubdetailed
.-Version
Zastępuje numer wersji z
.nuspec
pliku.
Zobacz też Zmienne środowiskowe
Wykluczanie zależności programistycznych
Niektóre pakiety NuGet są przydatne jako zależności programistyczne, które ułatwiają tworzenie własnej biblioteki, ale nie muszą być potrzebne jako rzeczywiste zależności pakietów.
Polecenie pack
zignoruje package
wpisy, które packages.config
mają developmentDependency
atrybut ustawiony na true
. Te wpisy nie będą uwzględniane jako zależności w utworzonym pakiecie.
Rozważmy na przykład następujący packages.config
plik w projekcie źródłowym:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="1.5.2" />
<package id="netfx-Guard" version="1.3.3.2" developmentDependency="true" />
<package id="microsoft-web-helpers" version="1.15" />
</packages>
W przypadku tego projektu pakiet utworzony przez nuget pack
program będzie miał zależność od jQuery
elementu , microsoft-web-helpers
ale nie netfx-Guard
.
Pomijanie ostrzeżeń dotyczących pakietów
Chociaż zaleca się rozwiązanie wszystkich ostrzeżeń nuGet podczas operacji pakietu, w niektórych sytuacjach pomijanie ich jest uzasadnione.
Można to osiągnąć w następujący sposób:
nuget.exe pack package.nuspec -Properties NoWarn=NU5104
Przykłady
nuget pack
nuget pack foo.nuspec
nuget pack foo.csproj
nuget pack foo.csproj -Properties Configuration=Release
nuget pack foo.csproj -Build -Symbols -Properties owners=janedoe,xiaop;version="1.0.5"
# Create a package from project foo.csproj, using MSBuild version 12 to build the project
nuget pack foo.csproj -Build -Symbols -MSBuildVersion 12 -Properties owners=janedoe,xiaop;version="1.0.5"
# Create a package from project foo.nuspec and the corresponding symbol package using the new recommended format .snupkg
nuget pack foo.nuspec -Symbols -SymbolPackageFormat snupkg
nuget pack foo.nuspec -Version 2.1.0
nuget pack foo.nuspec -Version 1.0.0 -MinClientVersion 2.5
nuget pack Package.nuspec -exclude "*.exe" -exclude "*.bat"
Uwaga
Polecenie pack
dla projektów w stylu zestawu SDK nie jest obsługiwane, zamiast tego należy użyć dotnet pack
polecenia lub msbuild -t:pack
spakować te projekty.