代码之家  ›  专栏  ›  技术社区  ›  Polyfun MicBehrens

TfsBuild.proj中的条件属性组

  •  0
  • Polyfun MicBehrens  · 技术社区  · 14 年前

    我正在尝试根据另一个属性组的值设置属性组:

    <PropertyGroup Condition="'$(BuildDefinitionName)'=='Dev1'">
        <DeploymentServer>DEVSERVER</DeploymentServer>
    </PropertyGroup>
    
    <PropertyGroup Condition="'$(BuildDefinitionName)'=='Main'">
        <DeploymentServer>MAINSERVER</DeploymentServer>
    </PropertyGroup>
    
    <PropertyGroup Condition="'$(BuildDefinitionName)'=='Release'">
        <DeploymentServer>RELEASESERVER</DeploymentServer>
    </PropertyGroup>
    

    后来我有了这个目标

    <Target Name="AfterEndToEndIteration" Condition="'$(DeploymentServer)'!=''">
    </Target>
    

    未执行此目标,因为$(DeploymentServer的计算结果为“”。但是,如果我无条件地设置该属性:

    <PropertyGroup>
        <DeploymentServer>SCHVMOMNET3</DeploymentServer>
    </PropertyGroup>
    

    它工作——目标被执行。

    $(buildDefinitionName)属性正常,因为我在其他地方将它用作.testconfig文件的名称。

    如何根据条件定义的属性让目标执行?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Polyfun MicBehrens    14 年前

    我通过将PropertyGroup放入目标中来实现这一点:

    <Target Name="AfterEndToEndIteration">
        <PropertyGroup>
            <DeploymentServer Condition="'$(BuildDefinitionName)'=='Dev'">DEVSERVER</DeploymentServer>
            <DeploymentServer Condition="'$(BuildDefinitionName)'=='Main'">MAINSERVER</DeploymentServer>
            <DeploymentServer Condition="'$(BuildDefinitionName)'=='Release'">RELEASESERVER</DeploymentServer>
        </PropertyGroup>
    </Target>