代码之家  ›  专栏  ›  技术社区  ›  Stack Overflow is garbage

MSBuild条件依赖于任务参数

  •  2
  • Stack Overflow is garbage  · 技术社区  · 15 年前

    在MSBuild中,很容易定义 PropertyGroup Foo :

    <PropertyGroup Conditional="'$(Foo)'=='Bar'" />
    

    条件是否也可以依赖于任务参数?

    例如,我想使用 Link task SubSystem 参数大致如下:

    <PropertyGroup Conditional="'$(Link/SubSystem)'=='Console'" />
    

    但不知道是否可能,如果可能,正确的语法是什么。

    不过,我对MSBuild还很陌生,所以很可能我遗漏了一些东西。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Filburt kukabuka    15 年前

    我的机器上没有VC SDK,所以我不能尝试 Link <Output /> 任务的:

    ...
    <PropertyGroup Condition="'$(LinkSubSystem)'=='Console'">
        <MyDependentProp>Whatever</MyDependentProp>
    </PropertyGroup>
    
    <Target Name="Linker">
        <Link Sources="@(LinkerSources)" SubSystem="Console">
            <Output TaskParameter="SubSystem" ItemName="LinkSubSystem" />
        </Link>
    </Target>
    ...
    

    第二种方法是为链接任务子系统param本身使用一个属性,为PropertyGroup回收它。

    ...
    <PropertyGroup>
        <LinkerSubSystem>Console</LinkerSubSystem>
    </PropertyGroup>
    
    <PropertyGroup Condition="'$(LinkerSubSystem)'=='Console'">
        <MyDependentProp>Whatever</MyDependentProp>
    </PropertyGroup>
    
    <Target Name="Linker">
        <Link Sources="@(LinkerSources)" SubSystem="$(LinkerSubSystem)" />
    </Target>
    ...