2

ソース管理に TFS を使用し、継続的インテグレーション(CI)に TFS ビルドを使用する Visual Studio 2012 .NET 4.5 ASP.NET MVC 4 プロジェクトを使用しています。

CI ビルドが開始される前に、ビルド番号の各チェックで更新される機能を作成したいと考えています。

調査によると、カスタム アクティビティを作成して TFS 2010 ビルド テンプレートに統合できるようです。

MSBuild タスクで実現できる例も見てきました。

私は以前にこの分野で仕事をしたことがないので、私に開かれたオプションに基づいて、どちらがより良いアプローチまたは推奨されるアプローチであるか疑問に思っていますか? 一般に、カスタム アクティビティに対して MSBuild タスクを使用するのはいつですか? たとえば、将来的にはチェックインに対してもFxCopStyleCopを実行することを検討しているので、これに対する共通のアプローチが必要です。

4

1 に答える 1

5

ビルド番号を増やす場合は、実装が msbuild 実装に結び付けられないように、TFS ビルド アクティビティに投票します。これにより、TFS ワークフロー アクティビティをブランチに直接結び付けなくても、任意の数のブランチに簡単に適用できます。さらに、開発者のコ​​ンピューターで誤って実行されないように、MSBuild プロジェクト ファイルにタスクが含まれないようにします。

全体として、MSBuild アクティビティとワークフロー アクティビティのどちらを使用するかを決定する際には、さまざまな要因を考慮する必要があると思います。

1 - MSBuild はすぐに使用できる機能 (コード分析/FxCop など) をサポートしていますか?

2 - ビルド ステップはサーバー (StyleCop/FxCop) だけでなく開発者ボックスでも実行する必要がありますか?

3 - ビルド ステップは、TFS API またはソース管理と直接やり取りする必要がありますか (インクリメントのためにバージョン ファイルをチェックアウト/チェックインしますか)?

4 - 後でビルド ジョブ スケジューラを無料のもの ( Jenkinsなど) に変更する予定はありますか?

これらの要素の組み合わせによって、私の著書にある特定のツール統合の実装が決定されます。FxCop、StyleCop、および MSBuild を介して開発者ボックス ビルドで実行する必要があるその他のツールを実装します。コード アクティビティやスクリプトウェアを使用して、バージョンのインクリメント、ビンの配置、CI 展開の呼び出し (たとえば、ビルド後の手順としてのSharePoint Web パーツの展開) などのビルド手順を実装します。

于 2012-11-07T16:34:08.970 に答える