Udostępnij za pośrednictwem


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ład 1.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 i symbols.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), quietlub detailed.

  • -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.