私は Team Foundation Server 2012 を使用して、データ ウェアハウス プロジェクトの継続的インテグレーション ビルドを機能させてきました。そうすることで、ラベル付けとラベルからの構築が、期待した結果をもたらさないことに気付きました. 問題を調査する際に、Team Foundation Servers コマンド ライン ツールによって提供されるコマンド ライン引数のみを使用して、問題を再現することができました。これにより、ビルドに影響を与えている可能性のあるビルド定義をすべて排除することができました。
これが私の問題です。1 つのビルドで 2 つの異なるプロジェクトをビルドしているビルドがあります。基本的に、2 つの *.SLN ファイルが関連付けられています。各プロジェクトに 1 つずつ、2 つのアセットにラベルを適用しました。その後、コマンドを実行して、どのアセットにラベルが付いているかを表示できます。これを行うと、期待される結果が得られます。ただし、このラベルに関連付けられたアセットを取得するコマンドを実行すると、2 つのファイルのうちの 1 つしかプルされません。プロジェクトの 1 つを削除することで、両方のファイルをプルできることを確認しました。これは、ビルド定義、ワークスペース、およびラベルを使用したセットアップです
TFS パス:
$/Dev/Project1
$/Dev/Project2ワークスペース マッピング
Project1: C:/SourceControl/Project1
Project2: C:/SourceControl/Project2DeploymentFolder
Project1: //DevServer/SSIS/Project1
Project2: //DevServer/SSIS/Project2実行コマンド:
Apply Label :
tf label TestLabel $/DEV/Project1/PackageA.dtsx
tf label TestLabel $/DEV/Project2/PackageA.dtsxレビュー ラベル:
tf ラベル /format:Detailed LTestLabelラベルから取得:
tf get /r /version:LTestLabel
tf get コマンドを実行すると、次の結果が得られます
展開フォルダー: //DevServer/SSIS/Project1 には PackageA.dtsx ファイルが含まれます。
展開フォルダー: //DevServer/SSIS/Project2 には 0 個のファイルが含まれます。
同じラベルを持つ異なるプロジェクトのアセットをプルすることには、フィルターまたは制限があるようです。TFS の任意のアセットにラベルを適用してからラベルを取得すると、そのラベルが適用されたすべてのアセットを取得できるはずです。誰かがこれを聞いたり経験したりしましたか? 提供されたヘルプをいただければ幸いです。