如何使用默认值初始化ItemGroup中的项目?

时间:2012-03-12 18:15:24

标签: msbuild

可以将PropertyGroup中的属性初始化为默认值,如下所示:

<PropertyGroup>
    <MyProperty Condition="$(MyProperty) == ''">MyDefaultValue</MyProperty>
</PropertyGroup>

是否可以通过Items实现相同的目标?:

<ItempGroup>
    <MyItems Condition="MyItems is no defined" Include="MyDefaultFile.ext;"/>
</ItemGroup>

目前我在做:

<ItemGroup>
    <MyItems Condition="!Exists(@(MyItems))" Include="MyDefaultFile.ext;"/>
</ItemGroup>

但我不认为这是个好主意(即MyItems中的文件可能不存在,而MyItems可能已定义)

1 个答案:

答案 0 :(得分:3)

ItemGroup级别设置条件:

<ItemGroup Condition="'@(MyItems)' == ''">
  <MyItems Include="MyDefaultFile.ext" />
</ItemGroup>

您还可以使用ItemDefinitionGroup初始化默认元数据值。