Dynamo 用のパッケージとしてパブリッシュするアセンブリを開発している場合は、必要なすべてのアセットをグループ化し、パッケージと互換性のあるフォルダ構造に配置するように、プロジェクトを設定できます。これにより、プロジェクトをパッケージとしてすばやくテストし、ユーザの操作をシミュレーションすることができます。
Visual Studio でパッケージをビルドするには、次の 2 つの方法があります。
xcopy または Python スクリプトを使用して必要なファイルをコピーするビルド後のイベントを、プロジェクト設定ダイアログで追加します。
.csproj
ファイルで「AfterBuild」ビルド ターゲットを使用して、ファイルおよびフォルダのコピー タスクを作成します。
「AfterBuild」は、ビルド マシンでは使用できない可能性のあるファイル コピーに依存しないため、このような操作に適した方法であり、このガイドではこの方法について説明しています。
ソース ファイルがパッケージ ファイルとは別のファイルになるように、リポジトリ内のフォルダ構造を設定します。CustomNodeModel ケース スタディで作業しているため、Visual Studio プロジェクトと関連するすべてのファイルを新しい src
フォルダに配置します。プロジェクトによって生成されるすべてのパッケージをこのフォルダに保存することになります。フォルダ構造は次のようになります。
プロジェクト ファイルを新しい
src
フォルダに移動します。
ソース ファイルは別のフォルダにあるため、Visual Studio で AfterBuild
ターゲットを CustomNodeModel.csproj
ファイルに追加します。これにより、必要なファイルが新しいパッケージ フォルダにコピーされます。CustomNodeModel.csproj
ファイルをテキスト エディタ(この例では Atom を使用しました)で開き、ビルド ターゲットを終了タグ </Project>
の前に配置します。この AfterBuild ターゲットは、.dll、.pbd、.xml、および .config ファイルをすべて新しい bin フォルダにコピーし、dyf フォルダと extra フォルダを作成します。
ターゲットが(他のプロジェクト ファイルではなく)
CustomNodeModel.csproj
ファイルに追加されていること、およびプロジェクトに既存のビルド後の設定がないことを確認する必要があります。
AfterBuild ターゲットを終了タグ
</Project>
の前に配置します。
<ItemGroup>
セクションでは、特定のファイル タイプを表す変数がいくつか定義されています。たとえば、変数 Dll
は、出力フォルダ内にある、拡張子が .dll
のすべてのファイルを表します。
Copy
タスクは、すべての .dll
ファイルをフォルダにコピーします。具体的にはビルド先のパッケージ フォルダにコピーします。
Dynamo パッケージには通常、Dynamo カスタム ノード用の dyf
フォルダ、およびイメージなどのその他のアセット用の extra
フォルダがあります。これらのフォルダを作成するには、MakeDir
タスクを使用する必要があります。このタスクは、フォルダが存在しない場合にそのフォルダを作成します。このフォルダにファイルを手動で追加できます。
プロジェクトをビルドすると、プロジェクト フォルダには、以前に作成された src
フォルダの横に packages
フォルダが作成されます。packages
フォルダ内には、パッケージに必要なものがすべて格納されているフォルダがあります。また、pkg.json
ファイルをパッケージ フォルダにコピーして、Dynamo でパッケージをロードできるようにする必要があります。
AfterBuild ターゲットが作成した新しいパッケージ フォルダ
プロジェクトの既存の src フォルダ
AfterBuild ターゲットによって作成された
dyf
およびextra
フォルダ
pkg.json
ファイルを手動でコピーします。
これで、Dynamo のパッケージ マネージャを使用してパッケージをパブリッシュしたり、Dynamo のパッケージ フォルダ <user>\AppData\Roaming\Dynamo\1.3\packages
に直接コピーできるようになりました。