C# で、TFS 2010 のチェックイン アクションによってトリガーされたビルドから変更セット内のファイルのリストを取得し、それらのファイルを SourcesDirectory から別の場所に移動するカスタム ビルド アクティビティを作成しようとしています。問題は、ファイルをループして別の場所に移動できるように、ビルドをトリガーする TFS 2010 にユーザーがチェックインするファイルのリストを取得できるかどうかです。これまでのところ、運がありません。
答えや助けをありがとう!
コメントを寄せてくれたロイック・フォーレ・ラクロワに感謝します。私の質問が広すぎると思うので、誰も私の質問に答えませんでした。私が今いる場所にたどり着くまでにはしばらく時間がかかりましたが、これまでになんとかやってきたことです。次のリンクから、変更セットをカスタム アクティビティのパラメーターとして使用するというアイデアを得ました。また、「Run On Agent」シーケンス内から取得できるパラメータとして SourcesDirectory を使用しました。
http://blogs.msdn.com/b/codejunkie/archive/2010/09/02/custom-build-activity-for-tfs-2010-to-send-email-with-build-details-part-1. aspx http://blogs.msdn.com/b/codejunkie/archive/2010/09/15/custom-build-activity-for-tfs-2010-to-send-email-with-build-details-part-2 .aspx
[RequiredArgument]
[Browsable(true)]
public InArgument<IList<Changeset>> Changesets { get; set; }
[RequiredArgument] // The source directory to copy the files from
public InArgument<string> SourcesDirectory { get; set; }
次に、変更セットをループして、TFS にチェックインされたアイテムのリストを取得する必要がありました。ただし、変更セットから取得したアイテムにはサーバー パス、つまり「$/MainProj/SubProj/contactus/contact.htm」のようなものが含まれているため、サーバー パスを実際のパスに変換できる ConvertWorkspaceItem アクティビティと同様の方法が必要でした。ビルド サーバー上のローカル ビルド パス。ConvertWorkspaceItem が実際にどのように機能するか知っている人はいますか? SourcesDirectory には次のようなパスがあります (常に同じ形式であるか、プロジェクトやビルド サーバーの構成方法に基づいて変更されるかはわかりません): C:\Builds\1\SubProj\Sources\contactusパスを変換する適切な方法が見つからないので、基本的な部分文字列の検索と置換の醜い方法を使用しました... 変更セットをループすると、サーバー パスをローカル ソース パスに変換すると、TFS にチェックインしたばかりのファイルを開発サーバーのフォルダーなどの別の場所にコピーできました。すると、大きな壁にぶち当たりました。いくつかの新しいファイルを含む新しいフォルダーを作成し、それらをチェックインしてビルドをトリガーすることでテストしたときに、ビルドからアクセス拒否エラーが発生しました。TFS で新しいフォルダーを作成し、ファイルをチェックインした一部のプロセスまたはスレッドは、ビルドの実行が開始されたときにまだフォルダーをロックしているように見えました。結構です…誰か洞察を共有してもらえますか?いくつかの新しいファイルを含む新しいフォルダーを作成し、それらをチェックインしてビルドをトリガーすることでテストしたときに、ビルドからアクセス拒否エラーが発生しました。TFS で新しいフォルダーを作成し、ファイルをチェックインした一部のプロセスまたはスレッドは、ビルドの実行が開始されたときにまだフォルダーをロックしているように見えました。結構です…誰か洞察を共有してもらえますか?いくつかの新しいファイルを含む新しいフォルダーを作成し、それらをチェックインしてビルドをトリガーすることでテストしたときに、ビルドからアクセス拒否エラーが発生しました。TFS で新しいフォルダーを作成し、ファイルをチェックインした一部のプロセスまたはスレッドは、ビルドの実行が開始されたときにまだフォルダーをロックしているように見えました。結構です…誰か洞察を共有してもらえますか?
ありがとう!