dotnet packdotnet pack

このトピックの対象: ✓ .NET Core SDK 1.x .NET Core SDK 2.0This topic applies to: ✓ .NET Core SDK 1.x .NET Core SDK 2.0


dotnet pack - NuGet パッケージにコードをパックします。dotnet pack - Packs the code into a NuGet package.


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]


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 is often useful in Continuous Integration (CI) build scenarios where you know the code was previously built.

パッキング プロセスのために dotnet pack コマンドに MSBuild のプロパティを使用できます。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. 」のセクションでは、MSBuild の /p スイッチを使用する方法について、2 つの異なるシナリオで説明します。The Examples section shows how to use the MSBuild /p switch for a couple of different scenarios.


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. It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Visual Studio Team Services or in build systems that need to explicitly control the time at which the restore occurs.

This command also supports the dotnet restore options when passed in the long form (for example, --source). Short form options, such as -s, are not supported.



パックするプロジェクトです。The project to pack. csproj ファイルまたはディレクトリのいずれかへのパスです。It's either a path to a csproj file or to a directory. 省略すると、既定で現在のディレクトリに設定されます。If omitted, it defaults to the current directory.


-c|--configuration {Debug|Release}

ビルド構成を定義します。Defines the build configuration. 既定値は Debug です。The default value is Debug.

--force 最後の復元が成功した場合でも、すべての依存関係が強制的に解決されます。--force Forces all dependencies to be resolved even if the last restore was successful. これは、project.assets.json ファイルを削除する処理に相当します。This is equivalent to deleting the project.assets.json file.


コマンドの短いヘルプを印刷します。Prints out a short help for the command.


NuGet パッケージにソース ファイルを含めます。Includes the source files in the NuGet package. ソース ファイルは、nupkg 内の src フォルダーに含まれます。The sources files are included in the src folder within the nupkg.


シンボルの nupkg を生成します。Generates the symbols nupkg.


パッキングの前にプロジェクトをビルドしません。Doesn't build the project before packing.


プロジェクト間参照を無視し、ルート プロジェクトのみを復元します。Ignores project-to-project references and only restores the root project.


コマンドを実行するときに、暗黙的な復元を実行しません。Doesn't perform an implicit restore when running the command.

-o|--output <OUTPUT_DIRECTORY>

指定したディレクトリにビルド済みパッケージを配置します。Places the built packages in the directory specified.


パッケージを復元するターゲット ランタイムを指定します。Specifies the target runtime to restore packages for. ランタイム ID (RID) の一覧については、RID カタログに関するページをご覧ください。For a list of Runtime Identifiers (RIDs), see the RID catalog.


パッケージに処理可能フラグを設定します。Sets the serviceable flag in the package. 詳しくは、「.NET Blog: .NET 4.5.1 Supports Microsoft Security Updates for .NET NuGet Libraries」(.NET ブログ: .NET 4.5.1 は .NET NuGet ライブラリに対する Microsoft セキュリティ更新プログラムをサポートする) をご覧ください。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].


現在のディレクトリのプロジェクトをパックします。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"

PackageVersion MSBuild プロパティで 2.1.0 にパッケージ バージョンを設定します。Set the package version to 2.1.0 with the PackageVersion MSBuild property:

dotnet pack /p:PackageVersion=2.1.0

プロジェクトを特定のターゲット フレームワーク用にパックします。Pack the project for a specific target framework:

dotnet pack /p:TargetFrameworks=net45

プロジェクトをパックして、復元操作の特定のランタイム (Windows 10) を使用します(.NET Core SDK 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