Аргумент определения сборки TFS в пользовательской активности

Получил шаблон определения сборки с настраиваемым аргументом «NpmEnabled» (если я посмотрю на xml шаблона xaml, он является частью

<x:Members>
  <x:Property Name="NpmEnabled" Type="InArgument(x:Boolean)" />
</x:Members>

Я могу установить 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 в шаблоне рабочего процесса определенное значение, но мне нужно значение параметра, которое я вижу в определении сборки.


person Dennis    schedule 22.06.2015    source источник


Ответы (1)


Это очень просто: в вашем пользовательском шаблоне вы будете ссылаться на сборка, содержащая вашу пользовательскую активность в начале шаблона сборки

<Activity xmlns:myns="clr-namespace:MyCompany.TfsBuild.Activities;assembly=MyCompany.TfsBuild.Activities"

а затем вызовите действие, подобное этому

<myns:NpmInstall NpmEnabled="[NpmEnabled]" />

квадратная скобка вводит выражение VB.

Все делается в XAML.

Пожалуйста, исправьте неточность в вашем коде: переменная NpmEnabled объявлена ​​как Boolean, а свойство Activity имеет тип string.

person Giulio Vian    schedule 22.06.2015