Я искал альтернативы в течение нескольких часов, и у меня возникли некоторые странности.
Итак, чтобы изолировать свою проблему, я создал очень простое кодовое действие, которое входит в мой шаблон xaml:
using System.Activities;
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Build.Workflow.Activities;
namespace Weco.TeamBuild.FirmwareActivityPack
{
[BuildActivity(HostEnvironmentOption.Controller)]
public sealed class TestActivity: CodeActivity<string>
{
protected override string Execute(CodeActivityContext context)
{
context.TrackBuildMessage("Inside TestActivity", BuildMessageImportance.High);
return "success";
}
}
}
Когда я попытался запустить это действие в последовательности «Запуск на агенте», я получил традиционную ошибку:
Cannot create unknown type '{clr-namespace:Weco.TeamBuild.FirmwareActivityPack;assembly=FirmwareActivityPack}TestActivity'.
У меня действительно есть сборка, в которой находится TestActivity, в источнике.control, и мой контроллер сборки указывает на него, как рекомендовано в нескольких онлайн-статьях.
Интересным фактором является то, что когда я помещаю копию этого действия в самый верх моего шаблона, он работает нормально (но толькоПервый TestActivity).Похоже, «Путь контроля версий к пользовательским сборкам» действителен только для контроллера сборки, а не для агентов.Я пытаюсь избежать установки или удаления чего-либо в GAC моего сервера сборки.
К вашему сведению, TFS установлена на machine_1, а Team Build (контроллер + 4 агента) установлена на machine_2