【发布时间】:2011-03-18 06:50:41
【问题描述】:
我对 MSBuild 非常陌生,无法弄清楚如何从条件部分构造 PropertyGroup 条目。
这是我所拥有的,但不起作用:
<ItemGroup>
<CompilerDirective Include="DEBUG_PARANOID" Condition=" '$(SomeFlag)' == 'true' "/>
<CompilerDirective Include="DEBUG"/>
<CompilerDirective Include="TRACE"/>
</ItemGroup>
<PropertyGroup>
...
<DefineConstants>@(CompilerDirective)</DefineConstants>
...
</PropertyGroup>
如果 SomeFlag 设置为 true,我希望定义的常量显示为 DEBUG_PARANOID;DEBUG;TRACE,否则忽略 DEBUG_PARANOID。顺便说一下,这是针对 .csproj 的。
如果我用消息任务打印出@(CompilerDirective),它就可以工作。
我的问题是如何在 PropertyGroup 条目中进行这项工作?
【问题讨论】:
-
顺便说一句:从 ItemGroups 构造属性的方式很糟糕。只需从其他属性构建一个属性。这样就容易多了。
-
ItemGroups 是指向文件,而不是任意字符串。
标签: msbuild