MSBuild,如何在命令行中覆盖属性表?

4
我正在寻找一种方法,在命令行中传递属性表(.props文件)给MSBuild。MSBuild似乎没有特定的属性表开关,但有一个/property 命令行开关,可以用来覆盖项目中的单个属性。
是否有一些方法可以在命令行上提供属性表,或者使用/property开关应用属性表呢?
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 编辑:msbuild 也内置了这个功能,只是觉得这有点像如何为msbuild任务设置预处理器定义作为任务属性的副本。除非您想要控制导入发生的位置,否则必须选择ForceImportBeforeCppTargets和ForceImportAfterCppTargets之间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接