我正在寻找一种将命令行上的属性表(.props 文件)传递给 MSBuild 的方法。 MSBuild 似乎没有针对属性表的特定开关,但有一个
/property
命令行开关,您可以使用它来覆盖项目中的各个属性。
是否有某种方法可以在命令行上提供属性表,或者使用
/property
开关来应用属性表?
在您的项目文件中添加一个导入,例如
<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 之间进行选择。