1

我在 TFS 工作流模板中定义了一个 MSBuild 活动,但目前我必须将“属性”命令行参数直接硬编码到模板中。

我希望能够通过高级设置“MSBuild Arguments”在构建定义中指定参数

我可以看到我可能必须使用字符串替换/连接来构建命令行,如此所述,但我看不到我需要输入的内容,可能是这样的:

4

1 回答 1

3

这是默认 MsBuild 任务使用的内容:

String.Format("/p:SkipInvalidConfigurations=true {0}", MSBuildArguments)

您可以通过MSBuildArguments多个步骤更改构建过程模板中的变量。例如,我在流程模板中添加了一个 Run Architecture Validation 属性,然后编辑工作流以简单地附加/ValidateArchitecture=trueMSBuildArguments它们被传递到 MsBuild 活动之前。

 <If Condition="[PerformArchitectureValidation]" DisplayName="Configure Architecture Validation MSBuild Arguments">
  <If.Then>
   <Assign>
    <Assign.To>
     <OutArgument x:TypeArguments="x:String">[MSBuildArguments]</OutArgument>
    </Assign.To>
    <Assign.Value>
      <InArgument x:TypeArguments="x:String">[MSBuildArguments + " /p:ValidateArchitecture=true"]</InArgument>
    </Assign.Value>
   </Assign>
  </If.Then>
 </If>

PerformArchitectureValidation变量被定义为类型为 Build Process Template 级别的 Property Boolean


更新:写了一篇博文,用步骤和截图解释了这一点

于 2013-02-13T11:18:54.900 回答