Как я могу скопировать Определение Сборки 2010 года TFS?

Там какой-либо путь состоит в том, чтобы скопировать определение сборки? Я работаю в методологии управления исходным кодом магистрали, которая использует много различных ответвлений, которые живут в течение очень коротких периодов (т.е. несколько дней к неделе). Я действительно хотел бы скопировать шаблон сборки и просто изменить решение создать. Там какой-либо путь состоит в том, чтобы сделать это?

21
задан devlife 26 May 2010 в 00:20
поделиться

2 ответа

Для этого можно написать надстройку. Вот код для копирования существующего определения сборки:

static IBuildDefinition CloneBuildDefinition(IBuildDefinition buildDefinition)
{
    var buildDefinitionClone = buildDefinition.BuildServer.CreateBuildDefinition(
        buildDefinition.TeamProject);

    buildDefinitionClone.BuildController = buildDefinition.BuildController;
    buildDefinitionClone.ContinuousIntegrationType = buildDefinition.ContinuousIntegrationType;
    buildDefinitionClone.ContinuousIntegrationQuietPeriod = buildDefinition.ContinuousIntegrationQuietPeriod;
    buildDefinitionClone.DefaultDropLocation = buildDefinition.DefaultDropLocation;
    buildDefinitionClone.Description = buildDefinition.Description;
    buildDefinitionClone.Enabled = buildDefinition.Enabled;
    buildDefinitionClone.Name = String.Format("Copy of {0}", buildDefinition.Name);
    buildDefinitionClone.Process = buildDefinition.Process;
    buildDefinitionClone.ProcessParameters = buildDefinition.ProcessParameters;

    foreach (var schedule in buildDefinition.Schedules)
    {
        var newSchedule = buildDefinitionClone.AddSchedule();
        newSchedule.DaysToBuild = schedule.DaysToBuild;
        newSchedule.StartTime = schedule.StartTime;
        newSchedule.TimeZone = schedule.TimeZone;
    }

    foreach (var mapping in buildDefinition.Workspace.Mappings)
    {
        buildDefinitionClone.Workspace.AddMapping(
            mapping.ServerItem, mapping.LocalItem, mapping.MappingType, mapping.Depth);
    }

    buildDefinitionClone.RetentionPolicyList.Clear();

    foreach (var policy in buildDefinition.RetentionPolicyList)
    {
        buildDefinitionClone.AddRetentionPolicy(
            policy.BuildReason, policy.BuildStatus, policy.NumberToKeep, policy.DeleteOptions);
    }

    return buildDefinitionClone;
}
12
ответ дан 29 November 2019 в 06:54
поделиться

Из вашего сообщения неясно, какой шаблон используется в вашем определении сборки (по умолчанию, обновление или управление лабораторией). Если я правильно понимаю, вы хотели бы легко настроить определение сборки, которое строит то же решение, но из другой ветки.

Вместо копирования определения вы можете попробовать отредактировать его. Когда ветка умирает, переименуйте определение сборки (может помочь с отчетом), измените сопоставление рабочей области сборки, и все готово.

Спасибо, Ладислав

0
ответ дан 29 November 2019 в 06:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: