我正在寻找一种方法将命令行上的属性表(.props文件)传递给MSBuild。 MSBuild似乎没有特定的属性表开关,但确实有/property
command line switch,您可以使用它来覆盖项目中的各个属性。
是否有某种方法可以在命令行上提供属性表,或者使用/property
开关来应用属性表?
答案 0 :(得分:2)
在项目文件中添加像
这样的导入<Import Project="$(CustomProps)" Condition="Exists($(CustomProps))" />
只需将其添加到其他导入的位置,或者如果您不想为每个配置/平台组合重复自己,请将其添加到<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
行下方(在这种情况下,其他属性表可以覆盖值从它开始)或<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
行之上(因此您可以在自定义属性表中应用'final'值)。
然后在命令行传递/p:CustomProps=/path/to/props
编辑 msbuild也内置了此功能,只是认为这有点How to set PreProcessorDefinitions as a task propery for the msbuild task的副本。除非您想控制导入的位置,否则您必须在ForceImportBeforeCppTargets和ForceImportAfterCppTargets之间进行选择。