.NET CLI を使用して NuGet パッケージを作成する方法
注意
以下は、Unix を使用する場合のコマンド ライン サンプルです。 ここに示されている dotnet pack
コマンドは Windows でも同じように機能します。
.NET Standard ライブラリと .NET Core ライブラリは NuGet パッケージとして配布されることが期待されています。 実際に、.NET Standard ライブラリはすべてそのように配布され、使用されています。 dotnet pack
コマンドを使用して行うのが最も簡単です。
たとえば、NuGet 経由で配布する新しい優れたライブラリを作成したとします。 クロス プラットフォーム ツールを使用して NuGet パッケージを作成すれば、正確に実行できます。 次の例では、netstandard1.0
をターゲットとする SuperAwesomeLibrary というライブラリを想定します。
推移的依存関係がある (つまり、別のパッケージに依存するプロジェクトがある) 場合、NuGet パッケージを作成する前に、dotnet restore
コマンドを使用してソリューション全体のパッケージを必ず復元します。 そうしないと、dotnet pack
コマンドが正しく機能しません。
復元を必要とするすべてのコマンド (dotnet new
、dotnet build
、dotnet run
、dotnet test
、dotnet publish
、dotnet pack
など) によって暗黙的に実行されるため、dotnet restore
を実行する必要がなくなりました。 暗黙的な復元を無効にするには、--no-restore
オプションを使用します。
dotnet restore
などの、明示的な復元が意味のある一部のシナリオや、復元が行われるタイミングを明示的に制御する必要があるビルド システムでは、dotnet restore
は引き続き有用なコマンドです。
NuGet フィードの管理方法については、dotnet restore
のドキュメントをご覧ください。
パッケージが復元されたことを確認したら、以下のコマンドを実行してライブラリがあるディレクトリに移動できます。
cd src/SuperAwesomeLibrary
その後、コマンド ラインから以下の 1 つのコマンドのみを実行します。
dotnet pack
これで /bin/Debug フォルダーは次のようになります。
$ ls bin/Debug
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg
これにより、デバッグ可能なパッケージが生成されます。 リリース バイナリと共に NuGet パッケージをビルドする場合、必要なのは、--configuration
(または -c
) スイッチを追加し、引数として release
を使用することだけです。
dotnet pack --configuration release
これで、/bin フォルダーに、NuGet パッケージとリリース バイナリを含む release フォルダーが生成されます。
$ ls bin/release
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg
これで、NuGet パッケージを発行するために必要なファイルが準備できました。
dotnet pack
と dotnet publish
を混同しないようにしてください
ここで dotnet publish
コマンドを使用しても意味がありません。 dotnet publish
コマンドは、同じバンドルにすべての依存関係があるアプリケーションを配置するためのものであり、NuGet 経由で配布して使用する NuGet パッケージを生成するためのものではありません。
関連項目
.NET