我希望MSBuild.exe始终使用/ MP选项,以便始终使用多个内核来构建项目。我尝试将/ MP添加到MSBuild.rsp的最后一行(与MSBuild.exe可执行文件位于同一目录中)。但是,未使用/ MP选项。如何使Visual Studio始终使用/ MP选项?
该MSBuild.rsp介绍我想使用的行为,但我一直没能得到它的工作:
自动响应文件是MSBuild.exe在构建项目时自动使用的特殊.rsp文件。该文件MSBuild.rsp必须与MSBuild.exe位于同一目录中,否则将找不到该文件。您可以编辑此文件以指定默认命令行开关到MSBuild.exe。例如,如果您每次构建项目时都使用同一记录器,则可以将/ logger开关添加到MSBuild.rsp,并且MSBuild.exe将在每次构建项目时使用记录器。
我重新启动计算机,以确认MSBuild.exe是否不是使用MSBuild.rsp的先前版本。
我通过检查Windows任务管理器中的“打开文件位置”来验证是否在与MSBuild.exe相同的目录中修改了MSBuild.rsp。项目配置MP选项为空白(未明确禁用)。
我确认通过执行“仅项目”重建并仅计算Windows Task Manager中的一个cl.exe实例,并未使用MSBuild.rsp中的/ MP选项(如果我使用手动设置的/ MP选项进行了相同的重建,有超过10个cl.exe实例)。
我还尝试向MSBuild.rsp添加一堆垃圾,Visual Studio没有报告错误或警告,这使我认为MSBuild.rsp根本没有被使用。
我尝试为MSBuild启用诊断输出日志记录,并在项目的配置设置中明确启用它时显示/ MP选项(作为Tracker.exe的参数),但是如果我在项目的配置中将MP选项保留为空白,则仅包含在MSBuild.rsp中,/ MP选项不包括在此输出中。我不知道什么是Tracker.exe(我希望可以在其位置看到MSBuild.exe)。我还尝试在与Tracker.exe相同的目录中添加带有/ MP的Tracker.rsp文件,这完全没有帮助(并且我也尝试将MSBuild.rsp添加到我的Tracker.exe目录中,并且没有影响)。
只是为了查看rsp文件是否可以工作,我显式添加了rsp文件,并在项目的配置设置中添加了@选项,它确实显示为在诊断生成输出的/ MP选项中加载,但没有效果。 。/ MP选项作为cl.exe的参数包含在后面,而不是像在项目配置中指定MP选项时那样作为Tracker.exe的参数。我认为选项应该是MSBuild(或者我猜是Tracker.exe),而不是cl.exe。
我在大多数C ++项目中使用Visual Studio 2010。