dotnet packdotnet pack

Этот раздел применим к: ✓Пакет SDK для .NET Core 1.xПакет SDK для .NET Core 2.xThis topic applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

nameName

dotnet pack — упаковывает код в пакет NuGet.dotnet pack - Packs the code into a NuGet package.

Краткий обзорSynopsis

dotnet pack [<PROJECT>] [-c|--configuration] [--force] [--include-source] [--include-symbols] [--no-build] [--no-dependencies]
    [--no-restore] [-o|--output] [--runtime] [-s|--serviceable] [-v|--verbosity] [--version-suffix]
dotnet pack [-h|--help]

ОписаниеDescription

Команда dotnet pack выполняет сборку проекта и создает пакеты NuGet.The dotnet pack command builds the project and creates NuGet packages. Результат выполнения команды — пакет NuGet.The result of this command is a NuGet package. При наличии параметра --include-symbols создается другой пакет, содержащий отладочные символы.If the --include-symbols option is present, another package containing the debug symbols is created.

Зависимости NuGet упакованного проекта добавляются в файл NUSPEC, чтобы их можно было разрешить при установке пакета.NuGet dependencies of the packed project are added to the .nuspec file, so they're properly resolved when the package is installed. Межпроектные ссылки не упаковываются в проекте.Project-to-project references aren't packaged inside the project. Сейчас при наличии межпроектных зависимостей требуется один пакет на каждый проект.Currently, you must have a package per project if you have project-to-project dependencies.

dotnet pack по умолчанию сначала выполняет сборку проекта.By default, dotnet pack builds the project first. Чтобы избежать этого, передайте параметр --no-build.If you wish to avoid this behavior, pass the --no-build option. Этот вариант часто бывает полезен, например в сценариях сборки с непрерывной интеграцией (CI), когда вы знаете, что код был собран недавно.This option is often useful in Continuous Integration (CI) build scenarios where you know the code was previously built.

Может предоставлять свойства MSBuild команде dotnet pack для процесса упаковки.You can provide MSBuild properties to the dotnet pack command for the packing process. Дополнительные сведения см. в разделах Свойства метаданных NuGet и Справочник по командной строке MSBuild.For more information, see NuGet metadata properties and the MSBuild Command-Line Reference. В разделе Примеры показано, как использовать параметр -p MSBuild в различных сценариях.The Examples section shows how to use the MSBuild -p switch for a couple of different scenarios.

Веб-проекты по умолчанию не упаковываются.Web projects aren't packable by default. Чтобы переопределить такое поведение по умолчанию, добавьте следующее свойство в файл с расширением .csproj:To override the default behavior, add the following property to your .csproj file:

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

Примечание

Начиная с .NET Core 2.0 нет необходимости выполнять команду dotnet restore, так как она выполняется неявно всеми командами, которые требуют восстановления, например dotnet build и dotnet run.Starting with .NET Core 2.0, you don't have to run dotnet restore because it's run implicitly by all commands, such as dotnet build and dotnet run, that require a restore to occur. Эту команду по-прежнему можно использовать в некоторых сценариях, где необходимо явное восстановление, например в сборках с использованием непрерывной интеграции в Azure DevOps Services или системах сборки, где требуется явно контролировать время восстановления.It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Azure DevOps Services or in build systems that need to explicitly control the time at which the restore occurs.

Эта команда также поддерживает параметры dotnet restore при передаче в длинной форме (например, --source).This command also supports the dotnet restore options when passed in the long form (for example, --source). Параметры в краткой форме, например -s, не поддерживаются.Short form options, such as -s, are not supported.

АргументыArguments

  • PROJECT

    Упаковываемый проект.The project to pack. Это путь к файлу CSPROJ или каталогу.It's either a path to a csproj file or to a directory. Если значение не задано, по умолчанию используется текущий каталог.If not specified, it defaults to the current directory.

ПараметрыOptions

  • -c|--configuration {Debug|Release}

    Определяет конфигурацию сборки.Defines the build configuration. Значение по умолчанию — Debug.The default value is Debug.

  • --force

    Принудительное разрешение всех зависимостей, даже если последнее восстановление прошло успешно.Forces all dependencies to be resolved even if the last restore was successful. Указание этого флага дает тот же результат, что удаление файла project.assets.json.Specifying this flag is the same as deleting the project.assets.json file.

  • -h|--help

    Выводит краткую справку по команде.Prints out a short help for the command.

  • --include-source

    Включает исходные файлы в пакет NuGet.Includes the source files in the NuGet package. Исходные файлы включены в папку src пакета nupkg.The sources files are included in the src folder within the nupkg.

  • --include-symbols

    Создает символы nupkg.Generates the symbols nupkg.

  • --no-build

    Не выполняет сборку проекта перед упаковкой.Doesn't build the project before packing. Он также неявно задает флаг --no-restore.It also implicitly sets the --no-restore flag.

  • --no-dependencies

    Межпроектные ссылки игнорируются, и восстанавливается только корневой проект.Ignores project-to-project references and only restores the root project.

  • --no-restore

    Не выполняет неявное восстановление при выполнении команды.Doesn't execute an implicit restore when running the command.

  • -o|--output <OUTPUT_DIRECTORY>

    Собранные пакеты помещаются в указанный каталог.Places the built packages in the directory specified.

  • --runtime <RUNTIME_IDENTIFIER>

    Задает целевую среду выполнения для восстановления пакетов.Specifies the target runtime to restore packages for. Список идентификаторов сред выполнения (RID) см. в каталоге RID.For a list of Runtime Identifiers (RIDs), see the RID catalog.

  • -s|--serviceable

    Задает флаг "подлежит обслуживанию" в пакете.Sets the serviceable flag in the package. Дополнительные сведения см. в записи блога о том, что .NET 4.5.1 поддерживает обновления системы безопасности Майкрософт для библиотек .NET NuGet.For more information, see .NET Blog: .NET 4.5.1 Supports Microsoft Security Updates for .NET NuGet Libraries.

  • --version-suffix <VERSION_SUFFIX>

    Определяет значение для свойства $(VersionSuffix) MSBuild в проекте.Defines the value for the $(VersionSuffix) MSBuild property in the project.

  • -v|--verbosity <LEVEL>

    Задает уровень детализации команды.Sets the verbosity level of the command. Допустимые значения: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

ПримерыExamples

  • Упаковка проекта в текущем каталоге:Pack the project in the current directory:

    dotnet pack
    
  • Упаковка проекта app1:Pack the app1 project:

    dotnet pack ~/projects/app1/project.csproj
    
  • Упаковка проекта в текущем каталоге; полученные пакеты помещаются в папку nupkgs:Pack the project in the current directory and place the resulting packages into the nupkgs folder:

    dotnet pack --output nupkgs
    
  • Упаковка проекта в текущем каталоге в папку nupkgs и пропуск этапа сборки:Pack the project in the current directory into the nupkgs folder and skip the build step:

    dotnet pack --no-build --output nupkgs
    
  • Если суффикс версии пакета в файле CSPROJ настроен как <VersionSuffix>$(VersionSuffix)</VersionSuffix>, упаковка текущего проекта и обновление версии полученных пакетов с использованием указанного суффикса:With the project's version suffix configured as <VersionSuffix>$(VersionSuffix)</VersionSuffix> in the .csproj file, pack the current project and update the resulting package version with the given suffix:

    dotnet pack --version-suffix "ci-1234"
    
  • Устанавливает версию пакета в 2.1.0 с использованием свойства MSBuild PackageVersion:Set the package version to 2.1.0 with the PackageVersion MSBuild property:

    dotnet pack -p:PackageVersion=2.1.0
    
  • Упакуйте проект для требуемой версии .NET Framework:Pack the project for a specific target framework:

    dotnet pack -p:TargetFrameworks=net45
    
  • Упакуйте проект и используйте определенную среду выполнения (Windows 10) для операции восстановления (пакет SDK для .NET Core 2.0 и более поздних версий).Pack the project and use a specific runtime (Windows 10) for the restore operation (.NET Core SDK 2.0 and later versions):

    dotnet pack --runtime win10-x64
    
  • Упакуйте проект с помощью NUSPEC-файла:Pack the project using a .nuspec file:

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