適用対象: パッケージの作成 • サポートされているバージョン: 2.7 以降
指定した .nuspec またはプロジェクト ファイルに基づいて NuGet パッケージを作成します。 dotnet pack コマンド (「dotnet コマンド」を参照) と msbuild -t:pack (「MSBuild ターゲット」を参照) を代替候補として使用できます。
重要
PackageReference ベースのプロジェクトには dotnet pack または msbuild -t:pack を使用します。 NuGet バージョン 6.5 以降では、これらのプロジェクト タイプをパックしようとすると pack コマンドがエラーになります。 以前のバージョンではパックが試みられますが、生成されたパッケージが正しくない可能性があります。
Mono では、プロジェクト ファイルからのパッケージの作成はサポートされていません。 nuget.exe 自体は Windows パス名を変換しないため、.nuspec ファイル内のローカル以外のパスを Unix スタイルのパスに調整する必要もあります。
使用方法
nuget pack <nuspecPath | projectPath> [options] [-Properties ...]
ここで <nuspecPath> と <projectPath> には、それぞれ .nuspec またはプロジェクト ファイルを指定します。
[オプション]
-BasePath.nuspec ファイルで定義されたファイルのベース パスを設定します。
-Buildパッケージをビルドする前にプロジェクトをビルドすることを指定します。
-ConfigFile適用する NuGet 構成ファイル。 指定しない場合は、
%AppData%\NuGet\NuGet.Config(Windows)、~/.nuget/NuGet/NuGet.Configまたは~/.config/NuGet/NuGet.Config(Mac/Linux) が使用されます。-Excludeパッケージの作成時に除外する 1 つまたは複数のワイルドカード パターンを指定します。 複数のパターンを指定するには、-Exclude フラグを繰り返します。 以下の例をご覧ください。
-ExcludeEmptyDirectoriesパッケージのビルド時に空のディレクトリが含まれないようにします。
-ForceEnglishOutput(3.5 以降) インバリアントの英語ベースのカルチャを使用して、nuget.exe の実行を強制します。
-?|-helpコマンドのヘルプ情報を表示します。
-IncludeReferencedProjectsビルドされたパッケージに、依存関係として、またはパッケージの一部として参照されるプロジェクトを含める必要があることを示します。 参照先のプロジェクトに、プロジェクトと同じ名前の対応する
.nuspecファイルがある場合、その参照先プロジェクトは依存関係として追加されます。 それ以外の場合は、参照先のプロジェクトがパッケージの一部として追加されます。-InstallPackageToOutputPathフィードとして共有をサポートするためにパッケージ出力ディレクトリをコマンドで準備する必要があるかどうかを指定します。
-MinClientVersion作成されたパッケージの minClientVersion 属性を設定します。 この値は、
.nuspecファイル内の既存の minClientVersion 属性 (存在する場合) の値をオーバーライドします。-MSBuildPath(4.0 以降) コマンドで使用する MSBuild のパスを指定します。
-MSBuildVersionよりも優先されます。-MSBuildVersion(3.2 以降) このコマンドで使用する MSBuild のバージョンを指定します。 サポートされる値は、4、12、14、15.1、15.3、15.4、15.5、15.6、15.7、15.8、15.9 です。 既定では、パス内の MSBuild が選択されます。それ以外の場合は、インストールされている MSBuild の最も新しいバージョンが既定値です。
-NoDefaultExcludesNuGet パッケージ ファイルと、
.svnや.gitignoreなど、ドットで始まるファイルとフォルダーが既定で除外されることがないようにします。-NonInteractiveユーザーによる入力や確認を求めるプロンプトを表示しません。
-NoPackageAnalysisパッケージのビルド後に、パックでパッケージの分析を実行しないことを指定します。
-OutputDirectory作成されたパッケージを保存するフォルダーを指定します。 フォルダーが指定されない場合、現在のフォルダーが使用されます。
-OutputFileNamesWithoutVersionバージョンを指定せずにパッケージ出力名をコマンドで準備する必要があるかどうかを指定します。
-PackagesDirectoryパッケージ フォルダーを指定します。
-p|-Properties他のオプションの後に、コマンド ラインの最後に指定する必要があります。 プロジェクト ファイル内の値をオーバーライドするプロパティのリストを指定します。プロパティ名については、「MSBuild プロジェクトの共通プロパティ」を参照してください。 ここの Properties 引数は、token=value ペアをセミコロンで区切ったリストです。
.nuspecファイルで$token$が出現するたびに、指定された値で置き換えられます。 値には、引用符で囲まれた文字列を指定できます。 "Configuration" プロパティの既定値は "Debug" であることに注意してください。 Release の構成に変更するには、-Properties Configuration=Releaseを使用します。 一般に、プロパティは、変なビヘイビアーが発生する可能性がないように、対応するプロジェクトのビルド中に使用されたプロパティと同じにすることが適切です。-SolutionDirectoryソリューション ディレクトリを指定します。
-Suffix(3.4.4 以降) 内部で生成されたバージョン番号にサフィックスを追加します。通常は、ビルドやその他のプレリリース識別子を追加するために使用されます。 たとえば、
-suffix nightlyを使用すると、1.2.3-nightlyのようなバージョン番号を持つパッケージが作成されます。 さまざまなバージョンの NuGet と NuGet パッケージ マネージャーでの警告、エラー、および互換性がない可能性を回避するため、サフィックスは英字で始まる必要があります。-SymbolPackageFormatシンボル パッケージを作成するときに、
snupkgとsymbols.nupkgの形式から選択できるようにします。-Symbolsパッケージにソースとシンボルが含まれることを指定します。
.nuspecファイルと共に使用すると、通常の NuGet パッケージ ファイルと、対応するシンボル パッケージが作成されます。 既定では、レガシ シンボル パッケージが作成されます。 シンボル パッケージに推奨される新しい形式は .snupkg です。 「シンボル パッケージ (.snupkg) の作成」を参照してください。-Toolプロジェクトの出力ファイルをパッケージ内の
toolsフォルダーに配置するように指定します。-Verbosity [normal|quiet|detailed]出力表示の詳細度を、
normal(既定)、quiet、またはdetailedに指定します。-Version.nuspecファイルのバージョン番号をオーバーライドします。
「環境変数」を参照してください。
開発用依存関係の除外
一部の NuGet パッケージは、独自のライブラリを作成するのに役立つ開発用依存関係として役立ちますが、必ずしも実際のパッケージの依存関係として必要とは限りません。
pack コマンドは、developmentDependency 属性が true に設定されている packages.config の package エントリを無視します。 これらのエントリは、作成されたパッケージに依存関係として含まれません。
たとえば、ソース プロジェクト内の次の packages.config ファイルを考えます。
<?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>
このプロジェクトでは、nuget pack によって作成されたパッケージには jQuery と microsoft-web-helpers の依存関係が含まれますが、netfx-Guard は含まれません。
pack 警告の抑制
パック操作中にすべての NuGet 警告を解決することをお勧めしますが、特定の状況では、それらを抑制することが許容されます。
次のようにすれば実現できます。
nuget.exe pack package.nuspec -Properties NoWarn=NU5104
例
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"
Note
SDK スタイルのプロジェクトでは pack コマンドはサポートされていません。これらのプロジェクトをパックするには、代わりに dotnet pack または msbuild -t:pack を使用します。