Nupackは、Visual Studioで構築する際にAssemblyInfoまたはNuspecに基づいて.NET 4.0+用のNUGETパッケージを作成する簡単な方法です。 Nugetパッケージとして実現されています。
Nupackがプロジェクトによる参照の場合、依存関係は作成されません。プロジェクトの出力をIDとしてプロジェクト名を持つNUGETパッケージに自動的にパックする新しいビルドステップのみがあります。
.nuspecファイルがプロジェクトの一部として検出されると、Nupackは仕様を尊重し、予想されるNugetパッケージを生成するために自動構成を適用しません。
NUGETパッケージの依存関係を備えたシンプルなライブラリ(LIBフォルダー)を作成します。このパターンは、タイプライブラリのプロジェクトに対して.NUSPECファイルが検出されていない場合に自動的に適用されます。
パッケージがコンソールアプリケーションに基づいており、.NUSPECが宣言されていない場合、ビルドディレクトリは.targetsファイルで定義され、5つの引数を持つ投稿ビルドとしてビルドアクションステップを追加する簡単な方法を提供します。
依存関係は、ヌゲットパッケージ、プロジェクトの参照などです。これらは、exequatフォームを備えた生成されたNugetパッケージに再帰的に含める必要があります。
NUGETプロセスは、XMLドキュメントと出力の依存関係のリソースを伝播せず、NUPACKパッケージングプロセスでは考慮することはできません。 Nupackがそれらを自動的に伝播できるようにして、各ノードにきれいな構造とドキュメントを保持するのに役立ちます。
Nupackは、Nugetパッケージとしてプラグインを開発するライブラリを提供できます。 package.configからPluginを検出し、NupackフォルダーからロードしてNupackに動作を追加します。プラグインは、Nupackに渡された引数で呼び出され、結果を保存する前に元のPackageBuilderからPackageBuilderを作成します。プラグインは、ヌゲット作成後に処分されます。
Nupackは、プロジェクトを参照する場合、Nupackフォルダーにプラグイン(ライブラリ)を保存するために特定のパッケージを作成する必要があります。
[ライブラリ] .optimizer and [ライブラリ]という名前のライブラリを参照するという名前のコンソールアプリケーションでNupackが参照されると、オプティマイザーパターンが行われます。生成されたNUGETパッケージには、[ライブラリ] .dllがlibフォルダーに入り、[ライブラリ] .optimizer.exeは、コンソールアプリケーションパターンの標準ビルドアクションよりも同じ引数でポストビルドでオプティマイザーを実行するために、.targetsファイルを備えたビルドフォルダーに配置されます。 Nugetパッケージは[ライブラリ]名前をIDとして受け取ります。 [ライブラリ]がヌゲットプロデューサーである場合、パターンが実行されないことを意味します。オプティマイザーパターンは、たとえば[ライブラリ] .dllの使用に基づいてILを書き換えるか、準備するためのエントリポイントになります。
Visual Studio 2017は、NUGET統合テンプレートを変更しました。 Nupackは、Visual Studio 2017をサポートするために更新する必要があります。
Nugetでイライラすることの1つは、清潔で完全なメタデータを持つことです。残念ながら、AssemblyInfoはすべてのNUGETのニーズを公開する方法を提供していません。一方、同期の問題を引き起こし、メンテナンスオーバーヘッドを追加するのと同じ情報を複数の場所で宣言する必要があることがよくあります。 Github.com APIを使用してNugetの作成を自動的に完了することは、リアクティブを維持するのに良いことです。