预执行
预执行通过支持非顺序任务的生成来加强任务的并行化功能。它可以应用于用 Visual Studio、MSBuild C++ 和 Android NDK 编译的构建。
可以在 Agent Settings > Visual Studio Builds > Advanced 标签中启用或禁用该功能。
在 Single Build 上重写 Agent Predictive Execution Setting
无论在用户界面中启用还是禁用预测执行,您可以使用命令行手动启用或禁用单个构建。
使用 BuildConsole 命令时, 使用 /pemode flag。当 /pemode=2 enables it 时,/pemode=0 disables predictive execution。
受支持的 MSBuild 版本
此功能与 MSBuild 紧密集成。因此,在允许使用预测执行功能之前,Incredibuild 团队应验证 Microsoft 发布的的每个 MSBuild 版本。
如果您使用的 MSBuild 版本高于下文所列版本,可以通过以下方式联系 Incredibuild 获取支持: support@Incredibuild.com,并要求我们验证此版本,或者您也可以手动指示 Incredibuild 在您当前使用的 MSBuild 版本下,使用预执行功能并查看是否能收到预期结果。
Incredibuild 9.6.x
-
Visual Studio 2022 支持 MSBuild 32 位,最高版本为 17.0.0.80000。
-
限制:Visual Studio 2022 MSBuild 64 位目前不支持预测执行。
-
-
对于 Incredibuild 9.6.4 及以上版本,Visual Studio 2012 支持 MSBuild 到 4.8.3761.0 版本。
-
对于 Incredibuild 9.6.0 到 9.6.3,Visual Studio 2012 支持 MSBuild 到 4.8.3752.0 版本。
-
对于 Visual Studio 2019 及以下版本,列表与下述内容一致。
Incredibuild 9.5.x (Build 3385) 和较早版本:
-
Visual Studio 2019 支持 MSBuild,最高版本为 16.200.19.32702
-
Visual Studio 2017 支持 MSBuild,最高版本为 15.9.21.664
-
Visual Studio 2015 支持 MSBuild,最高版本为 14.0.27530.0
-
Visual Studio 2013 支持 MSBuild,最高版本为 12.0.40629.0
-
Visual Studio 2010/2012 支持 MSBuild,最高版本为 4.8.3752.0
为 MSBuild Version 手动启用预执行功能
如果上表未列出您正在使用的 MSBuild 版本,而您想尝试启用预测执行功能,或者如果您的主机上安装的 MSBuild 版本在上述列表中且受当前所用 Incredibuild 版本的支持,但是却在将您转至此页的 Incredibuild Build Monitor 中看到一条警告消息,请执行以下操作:
-
右键单击 Incredibuild tray icon->Coordinator Monitor,从安装 Coordinator 的机器上打开 Coordinator Monitor。
-
从 Agents 列表中选择全部 Initiator 机器(如果方便的话,您也可以选择全部 Agent)。
-
右键单击并选择弹出的菜单选项 "Set Registry Value"。
-
在出现的对话框中,输入以下内容:
-
类目: Builder
-
文件名: MSBuildMaxSupportedVersionXX.X(XX.X 是与 Visual Studio 版本相对应的版本号)。见下表)
-
日期: <当前 MSBuild 版本>
-
- 上述 XX.X 版本应根据您的 Visual Studio 版本做如下替换:
- Visual Studio 2010 -> 10.0
- Visual Studio 2012 -> 11.0
- Visual Studio 2013 -> 12.0
- Visual Studio 2015 -> 14.0
- Visual Studio 2017 -> 15.0
- Visual Studio 2019 -> 16.0
- Visual Studio 2022 -> 17.0
-
您的 IncredBuild Initiator 现在应该能够从 IncredBuild Predictive Execution 功能提供的额外性能提升中获益。