【问题标题】:How do I pass MSBuild arguments from the build definition to a MSBuild workflow Activity如何将 MSBuild 参数从构建定义传递到 MSBuild 工作流活动
【发布时间】:2013-02-13 10:46:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: msbuild tfsbuild


    【解决方案1】:

    这是默认的 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

    【讨论】:

    • PerformArchitectureValidation 是如何定义和设置的?干杯。
    • 好的,我想通了,我们可以在构建定义中出现的构建模板中添加自定义参数,这就是我所采用的方法,非常感谢。
    • @jessehouwing 类似地,我如何在 xaml 构建定义中将两个参数传递给 PostBuildScriptArgs
    • @nithinchabdran 只需将它们附加到变量中即可。
    • 就像例子中的[MsbuildArguments]
    猜你喜欢
    • 1970-01-01
    • 2014-11-07
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    相关资源
    最近更新 更多