【发布时间】:2013-02-13 10:46:42
【问题描述】:
我在 TFS 工作流模板中定义了一个 MSBuild 活动,但目前我必须将“属性”命令行参数直接硬编码到模板中。
我希望能够通过高级设置“MSBuild Arguments”在构建定义中指定参数
我可以看到我可能必须使用字符串替换/concat 来构建命令行,如 here 所述,但我看不到我需要输入的内容,可能是这样的:
【问题讨论】:
我在 TFS 工作流模板中定义了一个 MSBuild 活动,但目前我必须将“属性”命令行参数直接硬编码到模板中。
我希望能够通过高级设置“MSBuild Arguments”在构建定义中指定参数
我可以看到我可能必须使用字符串替换/concat 来构建命令行,如 here 所述,但我看不到我需要输入的内容,可能是这样的:
【问题讨论】:
这是默认的 MsBuild 任务使用的:
String.Format("/p:SkipInvalidConfigurations=true {0}", MSBuildArguments)
您可以通过多个步骤更改构建过程模板中的MSBuildArguments 变量。例如,我在流程模板中添加了一个 Run Architecture Validation 属性,然后编辑了工作流,只需将 /ValidateArchitecture=true 附加到 MSBuildArguments,然后再将它们传递给 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 变量被定义为 Boolean 类型的构建过程模板级别上的属性。
更新:Wrote a blogpost that explains this with steps and screenshots
【讨论】:
PostBuildScriptArgs?
[MsbuildArguments]