dotnet pack

Ten artykuł dotyczy: ✔️ zestaw .NET Core 3.1 SDK i nowsze wersje

Nazwa

dotnet pack- Pakuje kod do pakietu NuGet.

Streszczenie

dotnet pack [<PROJECT>|<SOLUTION>] [-c|--configuration <CONFIGURATION>]
    [--force] [--include-source] [--include-symbols] [--interactive]
    [--no-build] [--no-dependencies] [--no-restore] [--nologo]
    [-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]
    [-s|--serviceable] [-v|--verbosity <LEVEL>]
    [--version-suffix <VERSION_SUFFIX>]

dotnet pack -h|--help

Opis

Polecenie dotnet pack kompiluje projekt i tworzy pakiety NuGet. Wynikiem tego polecenia jest pakiet NuGet (czyli plik nupkg).

Jeśli chcesz wygenerować pakiet zawierający symbole debugowania, dostępne są dwie opcje:

  • --include-symbols — tworzy pakiet symboli.
  • --include-source — tworzy pakiet symboli z folderem src zawierającym pliki źródłowe.

NuGet zależności spakowanego projektu są dodawane do pliku nuspec, więc są one prawidłowo rozwiązywane po zainstalowaniu pakietu. Jeśli spakowany projekt zawiera odwołania do innych projektów, inne projekty nie są uwzględnione w pakiecie. Obecnie musisz mieć pakiet dla każdego projektu, jeśli masz zależności między projektami.

Domyślnie dotnet pack najpierw kompiluje projekt. Jeśli chcesz uniknąć tego zachowania, przekaż --no-build tę opcję. Ta opcja jest często przydatna w scenariuszach kompilacji ciągłej integracji, w których wiesz, że kod został wcześniej skompilowany.

Uwaga

W niektórych przypadkach nie można wykonać niejawnej kompilacji. Taka sytuacja może wystąpić, gdy GeneratePackageOnBuild jest ustawiona, aby uniknąć cyklicznej zależności między elementami docelowymi kompilacji i pakietów. Kompilacja może również zakończyć się niepowodzeniem, jeśli istnieje zablokowany plik lub inny problem.

Można podać MSBuild właściwości polecenia dotnet pack dla procesu pakowania. Aby uzyskać więcej informacji, zobacz NuGet pack target properties and the MSBuild Command-Line Reference (Właściwości docelowe pakietu NuGet) i MSBuild Command-Line Reference (Dokumentacja MSBuild Command-Line). W sekcji Przykłady pokazano, jak używać przełącznika MSBuild -p dla kilku różnych scenariuszy.

Projekty internetowe nie są domyślnie pakowalne. Aby zastąpić domyślne zachowanie, dodaj następującą właściwość do pliku csproj :

<PropertyGroup>
   <IsPackable>true</IsPackable>
</PropertyGroup>

Niejawne przywracanie

Nie trzeba uruchamiać, dotnet restore ponieważ jest ona uruchamiana niejawnie przez wszystkie polecenia, które wymagają przywrócenia, takie jak dotnet new, dotnet build, dotnet run, , dotnet test, , dotnet publishi dotnet pack. Aby wyłączyć niejawne przywracanie, użyj --no-restore opcji .

Polecenie dotnet restore jest nadal przydatne w niektórych scenariuszach, w których jawne przywracanie ma sens, takie jak kompilacje ciągłej integracji w Azure DevOps Services lub w systemach kompilacji, które muszą jawnie kontrolować po zakończeniu przywracania.

Aby uzyskać informacje na temat zarządzania kanałami informacyjnymi NuGet, zobacz dokumentacjędotnet restore.

To polecenie obsługuje dotnet restore opcje przekazywane w długim formularzu (na przykład --source). Krótkie opcje formularza, takie jak -s, nie są obsługiwane.

Pliki do pobrania manifestu obciążenia

Po uruchomieniu tego polecenia inicjuje asynchroniczne pobieranie manifestów reklamowych dla obciążeń. Jeśli pobieranie jest nadal uruchomione po zakończeniu tego polecenia, pobieranie zostanie zatrzymane. Aby uzyskać więcej informacji, zobacz Manifesty reklamowe.

Argumenty

PROJECT | SOLUTION

Projekt lub rozwiązanie do spakowania. Jest to ścieżka do pliku csproj, vbproj lub fsproj albo pliku lub katalogu rozwiązania. Jeśli nie zostanie określony, polecenie wyszukuje bieżący katalog dla pliku projektu lub rozwiązania.

Opcje

  • -c|--configuration <CONFIGURATION>

    Definiuje konfigurację kompilacji. Wartość domyślna dla większości projektów to Debug, ale można zastąpić ustawienia konfiguracji kompilacji w projekcie.

  • --force

    Wymusza rozwiązanie wszystkich zależności, nawet jeśli ostatnie przywracanie zakończyło się pomyślnie. Określenie tej flagi jest takie samo jak usunięcie pliku project.assets.json .

  • -?|-h|--help

    Wyświetla opis sposobu używania polecenia.

  • --include-source

    Zawiera symbole debugowania NuGet pakiety oprócz regularnych pakietów NuGet w katalogu wyjściowym. Pliki źródeł znajdują się w src folderze w pakiecie symboli.

  • --include-symbols

    Zawiera symbole debugowania NuGet pakiety oprócz regularnych pakietów NuGet w katalogu wyjściowym.

  • --interactive

    Umożliwia zatrzymanie polecenia i oczekiwanie na wprowadzenie lub działanie użytkownika. Na przykład w celu ukończenia uwierzytelniania. Dostępny od zestawu .NET Core 3.0 SDK.

  • --no-build

    Nie kompiluje projektu przed pakowaniem. Ustawia również niejawnie flagę --no-restore .

  • --no-dependencies

    Ignoruje odwołania do projektu i przywraca tylko projekt główny.

  • --no-restore

    Nie wykonuje niejawnego przywracania podczas uruchamiania polecenia.

  • --nologo

    Nie wyświetla baneru startowego ani komunikatu o prawach autorskich.

  • -o|--output <OUTPUT_DIRECTORY>

    Umieszcza wbudowane pakiety w określonym katalogu.

  • --runtime <RUNTIME_IDENTIFIER>

    Określa docelowe środowisko uruchomieniowe do przywracania pakietów. Aby uzyskać listę identyfikatorów środowiska uruchomieniowego (RID), zobacz wykaz identyfikatorów RID.

  • -s|--serviceable

    Ustawia flagę z możliwością obsługi w pakiecie. Aby uzyskać więcej informacji, zobacz blog platformy .NET: .NET Framework 4.5.1 obsługuje aktualizacje zabezpieczeń firmy Microsoft dla bibliotek platformy .NET NuGet.

  • -v|--verbosity <LEVEL>

    Ustawia poziom szczegółowości polecenia. Dozwolone wartości to q[uiet], , m[inimal], d[etailed]n[ormal], i diag[nostic]. Aby uzyskać więcej informacji, zobacz LoggerVerbosity.

  • --version-suffix <VERSION_SUFFIX>

    Definiuje wartość właściwości VersionSuffix MSBuild. Wpływ tej właściwości na wersję pakietu zależy od wartości Version właściwości i VersionPrefix , jak pokazano w poniższej tabeli:

    Właściwości z wartościami Wersja pakietu
    Brak 1.0.0
    Version $(Version)
    VersionPrefix Tylko $(VersionPrefix)
    VersionSuffix Tylko 1.0.0-$(VersionSuffix)
    VersionPrefix i VersionSuffix $(VersionPrefix)-$(VersionSuffix)

    Jeśli chcesz użyć --version-suffixpolecenia , określ VersionPrefix , a nie Version w pliku projektu. Jeśli na przykład VersionPrefix jest 0.1.2 i zostanie przekazana --version-suffix rc.1 do dotnet packusługi , wersja pakietu będzie mieć wartość 0.1.2-rc.1.

    Jeśli Version ma wartość i przekazujesz --version-suffix do dotnet packelementu , wartość określona dla --version-suffix jest ignorowana.

Przykłady

  • Spakuj projekt w bieżącym katalogu:

    dotnet pack
    
  • Spakuj app1 projekt:

    dotnet pack ~/projects/app1/project.csproj
    
  • Spakuj projekt w bieżącym katalogu i umieść wynikowe pakiety w folderze nupkgs :

    dotnet pack --output nupkgs
    
  • Spakuj projekt w bieżącym katalogu do nupkgs folderu i pomiń krok kompilacji:

    dotnet pack --no-build --output nupkgs
    
  • Przy użyciu sufiksu wersji projektu skonfigurowanego jako <VersionSuffix>$(VersionSuffix)</VersionSuffix> w pliku csproj spakuj bieżący projekt i zaktualizuj wynikową wersję pakietu przy użyciu danego sufiksu:

    dotnet pack --version-suffix "ci-1234"
    
  • Ustaw wersję pakietu na 2.1.0 wartość z właściwością PackageVersion MSBuild:

    dotnet pack -p:PackageVersion=2.1.0
    
  • Spakuj projekt dla określonej platformy docelowej:

    dotnet pack -p:TargetFrameworks=net45
    
  • Spakuj projekt i użyj określonego środowiska uruchomieniowego (Windows 10) dla operacji przywracania:

    dotnet pack --runtime win10-x64
    
  • Spakuj projekt przy użyciu pliku nuspec :

    dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nuget
    

    Aby uzyskać informacje o sposobie używania NuspecFileelementów , NuspecBasePathi NuspecProperties, zobacz następujące zasoby: