Как я могу найти последнюю сборку в местоположении Builddrop?
Вопрос
Я определил сборку в TFS 2010 с местоположением падения типа «\ Server \ builddrop \».Когда я покинул постройку, она бросает сборку в чем-то вроде "\ server \ builddrop \ mybuild \ mybuild_20120309.1".
Я хотел бы быть в состоянии определить сборку, которая упадет в точное место, которое никогда не меняется. Могу ли я изменить определение сборки, чтобы всегда упасть в так, как это?
1) \ server \ builddrop \ mybuild \
или
2) \ Server \ Builddrop \ MyBuild \ Neighle \
Решение
Если люди хотят знать, где найти последние сборки, я думаю, что лучше всего воспитывать их на том, где находится расположение капель, и какие имена сборки настолько могут легко определить, какой из них сами. Если вы хотите скопировать выходное положение расположения падения в тот же каталог, вам придется создать пользовательский шаблон (путем изменения шаблона по умолчанию), который запускает вашу сборку. Во время моей сборки, после того, как файлы скопированы на местоположение падения, я выполняю скрипт, чтобы скопировать файлы в расположении падения в общепринятый «последний» каталог. Тем не менее, вы можете легко столкнуться с проблемами, где люди получают доступ к файлам в каталоге «Neighle», когда вы выполняете сборку, и поэтому ваша сборка не удается перезаписать эти файлы.
Если вы хотите определить местоположение падения последней успешной сборки, вы также можете сделать это программно. Ниже приведен фрагмент пользовательской деятельности, которую я написал, чтобы сделать только что:
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];
}
.
Если вы смотрите на настройку команды Build 2010, то я предлагаю прочитать Учебные пособия Ewald Hoffman на теме .
Другие советы
Когда запускается сборка, папка будет создана в указанном месте, такое как
- .
- mybuild_20120309.1
- mybuild_20120309.2
- mybuild_20120310.1
Соглашение об именах папки Renacodicetacode Номер сборки - это количество сборки, указанных в день.Поэтому, когда вы запускаете сборку, вы можете перейти на местоположение выпадения сборки и просто пойти на последнюю папку (на основе конвенции именования) и получите настройку.