【问题标题】:Is there any MSbuild task to check if a string contains another string (similar to string.contains)是否有任何 MSbuild 任务来检查一个字符串是否包含另一个字符串(类似于 string.contains)
【发布时间】:2011-03-18 09:37:32
【问题描述】:

我有这个 Msbuild 代码:

<Import Project="A.proj" Condition="$(BuildDefinition) =='Dist Staging to Dev' Or $(BuildDefinition) =='Dist Staging to Dev(Services Only)'"/>

但我想知道是否有类似的东西来检查一个字符串是否包含一些文本以获得类似于:

<Import Project="A.proj" Condition="$(BuildDefinition) CONTAINS 'Dist Staging to Dev'"/>

【问题讨论】:

    标签: msbuild msbuild-task


    【解决方案1】:

    如果你使用 MSBuild 4,你可以使用Property function

    <Import Project="A.proj" 
            Condition="$(BuildDefinition.Contains('Dist Staging to Dev'))"/>
    

    (More info on Property function)

    【讨论】:

    • 有效,虽然语法似乎有点违反直觉......在你的例子中,如果条件的结果为真,那么它可能会读取条件 =“$(true)”。如果您使用 OR - 条件="$(true) OR $(false)"。那么 $(...) 有什么作用呢?它是执行括号之间的任何内容,还是在执行前将其写入条件表达式?
    【解决方案2】:

    MSBuild4: 正如 Julien 所说,在 MSBUILD 4 中可以使用属性函数。

    MSBuild 3.x:如果您使用Tigris MsBuild Tasks,则可以在以前的版本中使用@

    您可以使用任务 RegexMatch 并使用正则表达式

    【讨论】:

      【解决方案3】:

      MsBuild Conditions reference 没有任何关于“包含”功能的可能性。看起来您的第一个版本是唯一的选择。

      【讨论】:

      猜你喜欢
      • 2013-03-13
      • 2017-02-06
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多