2

これが私が達成しようとしていることです。自動ビルド プロセスの一部としてテンプレート プロジェクトとしてエクスポートしたい C# および VB のプロジェクトが多数あります。テンプレートのエクスポートはインタラクティブに簡単に実行できますが、自動ビルド プロセスの一部として実行する必要があります。さらに、テンプレート プロジェクトは、エクスポートする前に実際にビルドする必要があります。これにより、エンド ユーザーがテンプレートを使用したときにコンパイルされることが保証されます。[テンプレート プロジェクトが通常コンパイルされないことはわかっていますが、その問題は解決したので、この質問の目的上、テンプレート プロジェクトは正常にコンパイルされると解釈できます]。

MSBuild コミュニティ タスクを使用して、エクスポートした最終的なテンプレート プロジェクトを圧縮する予定です。ただし、このアクションをテンプレート プロジェクト自体に配置することはできません。そのアクションはテンプレートの一部としてエクスポートされ、それは私が望んでいることではないからです。

したがって、私の考えでは、新しい別の MSBuild プロジェクトを作成して、他のテンプレート プロジェクトを調べ、それらに含まれるファイルを検出し、定義済みの MyTemplate.vstemplate ファイルを追加し、それらのファイルを圧縮して "walla" をエクスポートしたテンプレートを作成できると考えています。

ここまでは順調ですね。唯一の問題は、私は完全な MSBuild 初心者であり、開始に問題があることです。これを達成する方法についての提案をお待ちしております。

私は、これがほとんど「私の仕事をしてください」タイプの質問であることを痛感しています.流れていません。

4

1 に答える 1

2

「あなたのためにやっている」() ではなく、他の場所でどのように行われているかをお見せしましょうか? 私はあちらこちらで同じことをしました:

http://github.com/AArnott/dotnetopenid/commits

特に、projecttemplates/WebFormsRelyingParty Web プロジェクトは、build.proj ファイルの BuildProjectTemplates ターゲットによってプロジェクト テンプレートに変換されます。

私の戦略は、私が取り組んでいる通常の (コンパイル可能な) C# Web プロジェクトを持つことです。そのフォルダーには、プロジェクトに追加されていない.vstemplate ファイルもありますが、周りにあるので変更できます。次に、ビルド中に、MSBuild で Web サイトをビルドし、結果 (Web サイトのビルドのほとんどの製品を除く) を一時的な場所にコピーします。コピー中に、すべてのソース ファイルで Web アプリケーション名を $safeprojectname$ に置き換えるカスタム MSBuild タスクがあります。これは、VS プロジェクト テンプレート作成者が行うことだからです。テンプレートに使用するアイコンもコピーします。最後に、圧縮して .zip ファイルを出力ディレクトリに置きます。

于 2009-10-10T20:34:48.337 に答える