Изменение параметров процесса в определении сборки TFS - PullRequest
1 голос
/ 30 июня 2011

Обычно это делается с помощью чего-то похожего на

    Dim dicParamValues As IDictionary(Of String, Object) = WorkflowHelpers.DeserializeProcessParameters(pStrProcParam)
    'dicParamValues(<ProcessID>) = <Value>
    '...
    WorkflowHelpers.SerializeProcessParameters(dicParamValues)

Но обычные параметры процесса в BuildDefinition не имели параметров, которые мне нужно было изменить. Я нашел их в BuildDefinition.Process.Parameters, но это не файл, который можно проанализировать в словаре с помощью WorkFlowHelpers, вместо этого он десериализован в Activity.

Так как есть способ превратить Деятельности в список параметров словаря, я попробовал этот код

    Dim actParamValues As Activity = WorkflowHelpers.DeserializeWorkflow(pStrProcParam)
    Dim dicParamValues As IDictionary(Of String, Object) = WorkflowHelpers.GetProcessParameters(actParamValues)

, который, я думаю, будет работать, но он возвращает processParameters вместо объектов, и я не уверен, как их изменить или обойти проблему.

Я уже спрашивал на форумах msdn TFS, но пока не получил ответа. Буду признателен за любую помощь или подсказки.

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

Правильный код

        Dim dicParamValues As IDictionary(Of String, Object) = WorkflowHelpers.DeserializeProcessParameters(pStrProcParamShort)
    dicParamValues.Add("PublishToDevelopment", pBolDev)
    dicParamValues.Add("PublishToMainOrDemo", pBolDemo)
    dicParamValues.Add("PublishToLiveOrReleaseLocation", pBolRelease)
    Return WorkflowHelpers.SerializeProcessParameters(dicParamValues)

Я постараюсь следить за этим на случай, если у кого-то еще возникнет подобная проблема.

...