有一个构建定义模板,自定义参数'NpmEnabled'(如果我查看xaml模板的xml,它是
的一部分<x:Members>
<x:Property Name="NpmEnabled" Type="InArgument(x:Boolean)" />
</x:Members>
我可以在Build Definition中设置NpmEnable。
现在我有一个CustomActivity,并希望使用此设置。如何从上下文中获取此设置?
下一个代码不起作用......
[BuildActivity(HostEnvironmentOption.All)]
[ActivityTracking(ActivityTrackingOption.ActivityOnly)]
public sealed class NpmInstall : CodeActivity
{
public InArgument<string> NpmEnabled { get; set; }
public override void Execute(CodeActivityContext contect)
{
string x = context.GetValue<string>(this.NpmEnabled);
}
}
这样我需要将工作流模板中的NpmEnabled变量设置为特定值,但我想要在构建定义中看到的设置值。
答案 0 :(得分:1)
非常简单:在custom template中,您将在构建模板的开头引用包含自定义活动的程序集
<Activity xmlns:myns="clr-namespace:MyCompany.TfsBuild.Activities;assembly=MyCompany.TfsBuild.Activities"
然后调用此活动
<myns:NpmInstall NpmEnabled="[NpmEnabled]" />
方括号引入VB表达式。
一切都在XAML中完成。
请修复代码中的不一致:NpmEnabled
变量声明为 Boolean
,而Activity属性的类型为 string
强>