如何从MSBuild中的ItemGroup构建PropertyGroup条目?

我是MSBuild的新手,我很难搞清楚如何从条件部分构造一个PropertyGroup条目.

这就是我所拥有的,这是行不通的:

<ItemGroup>
    <CompilerDirective Include="DEBUG_PARANOID" Condition=" '$(SomeFlag)' == 'true' "/>
    <CompilerDirective Include="DEBUG"/>
    <CompilerDirective Include="TRACE"/>
</ItemGroup>

<PropertyGroup>
    ...
    <DefineConstants>@(CompilerDirective)</DefineConstants>
    ...
</PropertyGroup>

我希望定义的常量显示为DEBUG_PARANOID; DEBUG;如果SomeFlag设置为true则为TRACE,否则将省略DEBUG_PARANOID.顺便说一句,这是针对.csproj的.

如果我用消息任务打印出@(CompilerDirective),它就可以了.

我的问题是如何在PropertyGroup条目中进行此工作?

你上面有什么作品.我跑了这个:

<Target Name="Test">
  <ItemGroup>
      <CompilerDirective Include="DEBUG_PARANOID"
        Condition=" '$(SomeFlag)' == 'true' "/>
      <CompilerDirective Include="DEBUG"/>
      <CompilerDirective Include="TRACE"/>
  </ItemGroup>
  <PropertyGroup>
    <DefineConstants>@(CompilerDirective)</DefineConstants>
  </PropertyGroup>
  <Message Text="$(DefineConstants)" />
</Target>

得到了正确的输出    DEBUG,TRACE要么    DEBUG_PARANOID; DEBUG,TRACE取决于财产的价值.这对你不起作用的方式是什么?

相关文章
相关标签/搜索