2012-03-09 23 views
1

私たちのC#ソリューションには、ビルド後のイベント(つまり、最初は空です)を使用して作成された2つのフォルダがあります。tfsビルドに空のフォルダを含める

解決策はローカルで問題なく構築されますが、TFSビルドエージェントを使用すると、フォルダは公開されたWebサイトフォルダに表示されません。

TFSにフォルダを強制的にコピーさせる方法に関する提案はありますか?

答えて

4

これはここで扱われている:publish empty directories to a web application in VS2010 web project

TFSは、あなたのprojファイルのAfterBuildターゲットを実行しません。私はそれがAfterCompileターゲットを実行すると信じていますが、これはあなたが望むことをやっていないかもしれません。

私は、ラメであっても単純なダミーファイルを含めるアプローチを使用しました。

私はpowershellスクリプトを含むアプローチを試して、いくつかのポストパブリッシュタスクを行いました。

もっと最近私は、 ".package.proj"で終わる補足的なMSBuildファイルを含む慣例を採用し、ファイルをドロップにドロップした後にそれを探すチームビルドテンプレートに追加のMSBuild実行アクティビティを追加しましたそれを実行します。これにより、特定のビルドのワークフローを深く変更することなく、チームビルドのワークフローを簡単に実行できます。これは、ファイルを探す条件でラップされた単一の追加アクティビティです。見つかった場合は、それを実行します。

カスタムビルドテンプレートを作成し、ワークフローアクティビティを使用してさまざまなクリーンアップタスクを実行することもできますが、これはおそらく過度のものであり、ビルドテンプレートのメンテナンスが増加します。カスタマイズを必要としないビルドで「オプトアウト」設定を必要としない方法で機能させることができれば、カスタマイズを簡単に保つ方がよいでしょう。既存のバニラビルドは、テンプレートのカスタマイズ後も引き続き期待どおりに動作するはずです。

+0

ダミーファイルも避けようとしていました。補足のMSBuildファイルを試してみます - リンクに感謝しています! – diaho

+0

msbuildファイルのアプローチについていくつかの良い点があります。必要に応じて、TFSと同じファイルをローカルで使用できます。 AfterBuildターゲットをMSBuild "MSBuild"タスクで配線して実行し、チームビルドプロセステンプレートでMSBuildアクティビティを使用することができます。それはまた、あなたが関与しなければならない様々なテクノロジーを最小限に抑えます。とにかくMSBuildを使用してビルドしています。これはこれを補うだけです。別のMSBuildファイルに物事を保存することによって、あなたの人生をcsprojを編集しようとするよりもずっと簡単にすることができます。アンロードと再読み込みが関係するものは何でもいいです。 – jayint32

+1

ニース、私はいつも汚れていると感じているが、仕事を終えたダミーファイルを使ってきた。次回これを試してみましょう! – Rich

関連する問題