在命令行上覆盖属性表

问题描述 投票:0回答:1

我正在寻找一种将命令行上的属性表(.props 文件)传递给 MSBuild 的方法。 MSBuild 似乎没有针对属性表的特定开关,但有一个

/property
命令行开关,您可以使用它来覆盖项目中的各个属性。

是否有某种方法可以在命令行上提供属性表,或者使用

/property
开关来应用属性表?

msbuild
1个回答
2
投票

在您的项目文件中添加一个导入,例如

<Import Project="$(CustomProps)" Condition="Exists($(CustomProps))" />

只需将其添加到其他导入所在的位置,或者如果您不想为每个配置/平台组合重复自己,请将其添加到

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
行下方(在这种情况下,其他属性表可以覆盖其中的值)或位于
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
线上方(因此您可以将“最终”值应用到自定义属性表中)。

然后在命令行上传递

/p:CustomProps=/path/to/props

edit msbuild 也内置了此功能,只是认为这有点像如何将 PreProcessorDefinitions 设置为 msbuild 任务的任务属性。除此之外,如果您想控制导入发生的位置,您必须在 ForceImportBeforeCppTargets 和 ForceImportAfterCppTargets 之间进行选择。

© www.soinside.com 2019 - 2024. All rights reserved.