3

TeamFoundationServerによって開発および自動構築されているネイティブc++プロジェクトに自動バージョン管理を追加することを検討しています。理想的には、ビルドを開始し(TFSからすべての最新バージョンをチェックアウトします)、最初のステップとして、TFSからビルド番号を取得し、ヘッダーファイルを作成し、ビルドを続行する前にそのファイルをチェックインします。このようなビルド中にチェックアウト/チェックインを行うことも可能ですか?

私はTFSの仕組みと、TFSから情報を取得する機能についてあまり詳しくありません。また、私たちのチームの他の誰も、TFSを使用するのはこれが初めてです...

4

3 に答える 3

3

はい、できます。これは、AssemblyInfo for C#でそれを行う方法を示す優れたWebサイトです。そのため、ソリューションを少し調整する必要がありますが、タスクを完了するのに十分なことが示されているはずです。

大量のビルド環境でのチェックアウト/インには十分注意してください。「すでにロックされているファイルをチェックアウトできませんでした」というメッセージが多く発生する傾向があり、このビルドのチェックアウト後に別のビルドがチェックインされるため、チェックイン時に競合が発生します。多くのエラー処理と検証、および競合を処理する機能を備えたカスタムタスクを使用します。TF.EXEを大量に使用しないでください。

Webサイト

于 2013-01-11T17:30:40.293 に答える
0

Interesting idea, I don't know if it's possible to do this wil the built in build activities (probably not), however, you can use Invoke Process to call out to pretty much anything else you want, so you could try calling tf.exe (i.e. set the FileName to path\tf.exe and the Arguments to "checkout fullpathtothefile") to check out a file, do your edit/change (probably in another Invoke Process activity), then use Invoke Process to check it back in.

Just throwing the idea out there!

于 2013-01-11T17:02:02.117 に答える
0

バージョンファイルをチェックインしないでください。問題が発生します。代わりに、TFSが提供するビルド名を使用してオンザフライで生成し、それを使用してコンパイルします。Wintelectのソリューション(C ++、C#、およびその他の言語をサポート)から始めて、ビルドの実際のバージョンの文字列を文字列として含めるように変更しました。

警告:毎回ファイルを作成すると、インクリメンタルビルドが中断されます。ファイルが存在しない場合にのみファイルを再作成することになりました。つまり、増分ビルドのビルド番号は正しくありませんが、「公式」ビルドは増分ではなく、正しい番号になっています。

于 2013-01-11T18:29:13.943 に答える