几个小时以来,我一直在寻找替代品,但我遇到了一些非常奇怪的事情。
因此,为了隔离我的问题,我在我的 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 所在的程序集,并且我的构建控制器按照在线几篇文章中的建议指向它。
有趣的是,当我将该活动的副本放在模板的最顶部时,它运行良好(但只有第一个 TestActivity)。看起来“自定义程序集的版本控制路径”仅对构建控制器有效,对代理无效。我试图避免在我的构建服务器的 GAC 中安装/卸载任何东西。
仅供参考,TFS 安装在 machine_1 上,Team Build(控制器 + 4 个代理)安装在 machine_2 上