在MSBuild中的属性组内是否存在If&Quot;类型语句? [英] Do "if" type statements exist when inside Property Groups in MSBuild?

查看:0
本文介绍了在MSBuild中的属性组内是否存在If&Quot;类型语句?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前必须有两个单独的属性组,它们之间只有两个不同之处,它们被设置为根据条件具有一个或另一个触发器。这是我所拥有的:

<!--CAME FROM TEAMBUILD-->
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' != 'Debug|AnyCPU' AND '$(Configuration)|$(Platform)' != 'Release|AnyCPU' AND '$(BuildingInsideVisualStudio)' != 'true' ">
    <PreBuildEvent>
    </PreBuildEvent>
    <PostBuildEvent>
      set MAGE="C:Program Files (x86)Microsoft SDKsWindowsv7.0ABinNETFX 4.0 Toolsmage.exe"
      set APPFILE=$(TargetDir)$(TargetName).application
      set MANIFEST=$(TargetPath).manifest
      set CERT=$(ProjectDir)$(TargetName).pfx
      set PROJECTNAME=$(TargetName)
      set CONFIGURATION=$(ConfigurationName)
      set TARGETDIR=$(TargetDir)
      set TEAMBUILD=$True
      Powershell -File "$(ProjectDir)POSTBUILD.ps1"
    </PostBuildEvent>
  </PropertyGroup>

  <!--CAME FROM PUBLISH COMMAND-->
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' != 'Debug|AnyCPU' AND '$(Configuration)|$(Platform)' != 'Release|AnyCPU' AND '$(BuildingInsideVisualStudio)' == 'true' ">
    <PreBuildEvent>
    </PreBuildEvent>
    <PostBuildEvent>
      set MAGE="C:Program Files (x86)Microsoft SDKsWindowsv7.0ABinNETFX 4.0 Toolsmage.exe"
      set APPFILE=$(TargetDir)$(TargetName).application
      set MANIFEST=$(TargetPath).manifest
      set CERT=$(ProjectDir)$(TargetName).pfx
      set PROJECTNAME=$(TargetName)
      set CONFIGURATION=$(ConfigurationName)
      set TARGETDIR=$(TargetDir)
      set TEAMBUILD=$False
      Powershell -File "$(ProjectDir)POSTBUILD.ps1"
    </PostBuildEvent>
  </PropertyGroup>

有没有办法根据生成后事件中的$(BuildingInside VisualStudio)值设置TeamBuild值? 类似于

if($(BuildingInside VisualStudio)==‘TRUE’) SET TEAMBUILD=$True

或 甚至像这样的东西 set TEAMBUILD = $$(BuildingInsideVisualStudio)

推荐答案

您已经在使用它:Condition。您只需提取一个额外的步骤来创建将用作TEAMBUILD值的属性。例如:

<PropertyGroup Condition='$(BuildingInsideVisualStudio)' != 'true' ">
  <TeamBuildValue>FALSE</TeamBuildValue>
</PropertyGroup>

<PropertyGroup Condition='$(BuildingInsideVisualStudio)' == 'true' ">
  <TeamBuildValue>TRUE</TeamBuildValue>
</PropertyGroup>

<PropertyGroup>
  <PreBuildEvent>
  </PreBuildEvent>
  <PostBuildEvent>
    ...
    set TEAMBUILD=$(TeamBuildValue)
    ...
  </PostBuildEvent>
</PropertyGroup>

这篇关于在MSBuild中的属性组内是否存在If&Quot;类型语句?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆