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

标签 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 可能已定义)

最佳答案

ItemGroup 级别设置条件:

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

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

关于msbuild - 如何使用默认值初始化 ItemGroup 中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672511/

相关文章:

c++ - MSBuild.exe 不并行构建项目

msbuild - USQL msbuild - 复合构建输出

powershell - 如何为 Azure 应用服务(如 Visual Studio 2015 UI)生成 pubxml 文件?

visual-studio-2010 - Visual Studio 2010 : How to publish an ASP. NET Web 应用程序到带有 MSBUILD 的目标文件夹?

asp.net - 大型预编译 Asp.net 网站项目中出现错误 CS0433

silverlight - MSBuild 命令行错误 - Silverlight 4 SDK 未安装

msbuild - 如何覆盖 ItemGroup(就像我们对 PropertyGroup 所做的那样)

msbuild - 如何在 MSBuild 中添加自定义属性作为 PropertyGroup 的子项?

Delphi XE3 构建批处理无法使用 Hudson 或 Jenkins 运行 msbuild

msbuild - Cake Build 抑制 MSBuild 警告