3

TFSビルドフローは、TFS 2010のビルドテンプレート(実際には、*。xaml拡張子の付いたWindows Workflow Foundationファイル)で定義されています。
単純なプロジェクトで単一のビルド定義を処理するのは非常に便利でしたが、近い将来、非常に異なるビルド定義が多数ある、より複雑なプロジェクトがありますが、同時に、それらのいくつかにはいくつかの重要な共通点がありますロジックのパーツ。

また、各ビルドテンプレートに共通のロジックを複製する必要はありません。一方、超スマートでパラメータ化可能なビルドを1つ持つことは、最善のアイデアではないと考えられています。

簡単に言えば、質問は次のとおりです。
共通ロジックを別のビルドテンプレート/または_whateverに入れて再利用する可能性はありますか?

そうでない場合-そのような状況に関するいくつかのアプローチ/推奨事項はありますか?

更新
前述K.Hoffのように、カスタムアクティビティを作成する可能性はありますが、アクティビティだけでなくシーケンスも再利用したいと思います(簡単に言えば、AntやNAntと同様に、あるファイルを別のファイルに含め、1つのシーケンスを別など)。

4

3 に答える 3

1

共通のビルド機能でworkfow(.xamlファイル)を実行するコードアクティビティを記述できるかどうかを確認することをお勧めします。その結果、このようなコードアクティビティは、いくつかの「マスター」ビルドテンプレートに組み込まれる可能性があるため、共通のフローを再利用できます。ワークフローを動的にロードして実行する方法の例を次に示します-http://msdn.microsoft.com/en-us/vs2010trainingcourse_introtowf_topic8.aspx

于 2012-07-21T19:02:57.783 に答える
1

同様の状況がありますが、ほとんどのビルドシナリオは類似しているため(つまり、get-> build-> test-> deploy)、1つの大きな定義とカスタムアクティビティでほとんど解決しました。ただし、 Community TFSBuildExtensionsExecuteWorkflowから利用できるアクティビティも利用します。

これは「単純な」シナリオでうまく機能します。これをあまり広範に使用しない理由は、ワークフローの実行間でパラメーターを渡すのが非常に複雑だからです。これは私がこれで抱えていた問題へのリンクです(そして私が見つけた解決策のさらに下にあります)。

于 2012-07-22T16:34:29.980 に答える
0

ここで説明されているようにカスタムコードアクティビティを作成し、他のビルドテンプレートで再利用できます。

もう1つの方法は、古き良きmsbuildスクリプトを実装し、それらをmsbuild実行アクティビティに入れて、多くのビルドプロセステンプレートで再利用することです。

完全なシーケンスを再利用する簡単な方法を見つけることができません。私たちが見つけた唯一の方法は、可能な限り一般的なアクティビティを記述し、それらを実行するためのパラメーターを挿入することです。

しかし、それはTFSの問題ではなく、ワークフローの問題だと思います。

于 2012-07-20T21:09:41.527 に答える