最新のビルドの場所を知りたい場合は、ドロップ先の場所とビルド名を教えて、どれが最新のビルドであるかを簡単に判断できるようにすることをお勧めします。ドロップ先の出力を同じディレクトリにコピーする場合は、ビルドを実行するカスタムテンプレートを(デフォルトテンプレートを変更して)作成する必要があります。ビルド中に、ファイルがドロップ先の場所にコピーされた後、ドロップ先のファイルを共通の「最新の」ディレクトリにコピーするスクリプトを実行します。しかし、ビルドを実行しているときに人々が "最新"ディレクトリにあるファイルにアクセスしているという問題に簡単に直面することができます。そのため、ビルドに失敗するのはそれらのファイルを上書きできないためです。
最後に成功したビルドのドロップ先を特定する場合は、プログラムでそれを実行することもできます。以下は、私はちょうどそれを行うために書いたカスタムアクティビティの抜粋です:
string tfsUri = "http://pathToTfsServer:8080/tfs";
string projectName = "MyTfsProject";
string buildDefinition = "MyTfsBuildDefinitionName";
// connect to the Project and query the builds of the BuildDefinition
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsUri), new UICredentialsProvider());
tfs.EnsureAuthenticated();
var buildServer = tfs.GetService<IBuildServer>();
var buildDetails = buildServer.QueryBuilds(projectName, buildDefinition);
// sort builds based on start time
Array.Sort(buildDetails, delegate(IBuildDetail build1, IBuildDetail build2)
{
return build1.StartTime.CompareTo(build2.StartTime);
});
// return only the last successful build that currently exists
for (int i = buildDetails.Length - 1; i >= 0; i--)
{
if (buildDetails[i].Status == BuildStatus.Succeeded && buildDetails[i].IsDeleted == false)
return buildDetails[i];
}
あなたがチームビルド2010をカスタマイズで探しているなら、私はEwald Hoffman's tutorials on the subjectを読んで示唆しています。
(上記のように)変更されないドロップ位置を定義する方法はありますか? – tgriffin
あなたはセットアップが毎回一意のフォルダではなく指定されたフォルダに常に存在する必要があることを意味しますか? –