既定では、キューに入れられたビルドが実行されている場合、MSBuild は CoreLabel タスクを呼び出して、ビルドに含まれていたソース ファイルにラベルを付けます。このラベルが作成される場所を制御するにはどうすればよいですか?
基本的に、ラベルをチーム プロジェクトのルート (つまり、以下の "Client" フォルダー) に作成したいのですが、ワークスペースの作業フォルダーのルート(つまり、Project 1\Development ) にラベルが作成されているようです。\ソース):
$ <-- Project Collection
+- Client <-- Team Project
+- Project 1 <-- Project
+- Deployments <-- Assets for a deployment
+- 1.0.0.0
+- 1.1.0.0
+- Development <-- Development Branch
+- Source <-- Dev Build Definition working folder mapped here.
+- Environment <-- Scripts, etc. for deployments.
+- Main <-- Main Branch
+- Source <-- Release Build Definition working folder mapped here.
ビルド定義内で、ビルド タイプに応じて開発またはメインの「ソース」フォルダー レベルでワークスペースに「作業フォルダー」を指定しました。
ビルド ログを見ると、ラベルはクライアント レベルで作成する必要があるようです。
Task "Label" (TaskId:42)
Label TeamFoundationServerUrl="http://TFSServer:8080/tfs/DefaultCollection"
BuildUri="vstfs:///Build/Build/4538"
Name="Nightly_20110303.5"
Scope="$/Client"
Recursive=True
Comments="Version-1.0.0.0 Requested-xxx Get-T Branch-Development"
Version="WCATQCDEV-BLD_35_8"
Child="Replace"
Files="$/" (TaskId:42)
Label Nightly_20110303.5@$/Client (version WCATQCDEV-BLD_35_8) was successfully created. (TaskId:42)
ただし、ラベルFiles
が設定されて$/
いても、作業フォルダー レベルで作成されます。ドキュメントによると、Files
パラメーターはラベルに含まれるファイルを指定することになっていますが、明らかに期待どおりに機能していません。
BeforeLabel
プロパティを設定するタスクを使用して作成されたコメントを正常に変更しましたが、同じタスクでプロパティを次のようLabelComment
に設定しようとしても、ラベルが作成された場所に影響を与えないようで、終了するようですLabel メソッドを呼び出すと、ログに記録されます。LabelFiles
$/Client
%26/Client