Incredibuild不能很好地处理自定义构建工具

时间:2016-01-25 15:34:07

标签: linker visual-studio-2015 incredibuild

我有一个Visual Studio解决方案,我尝试使用Incredibuild工具进行构建。解决方案中的两个项目协同工作 - 第一个项目(我们称之为#34;项目A和#34;)构建可执行文件(foo.exe),它可以解析第二个数据文件( "项目B")生成一些头文件。

显然,项目B中定义的项目A存在依赖关系。如果我在项目B上使用Incredibuild的重建项目选项,它会正确构建项目A并成功构建foo.exe。项目B有一个自定义构建工具文件,它应该使foo.exe与它应该解析的文件的命令行参数一起运行。但是,尝试以这种方式启动foo.exe始终会返回错误:

  

CustomBuild:

     

运行Foo

     

' 可执行文件的路径 \ foo.exe'不被视为内部或   外部命令,可操作程序或批处理文件。

     

C:\ Program Files   (86)\的MSBuild \ Microsoft.Cpp \ V4.0 \ V140 \ Microsoft.CppCommon.targets(171,5):   错误MSB6006:" cmd.exe"退出代码9009。

有趣的是,如果我然后使用Incredibuild构建项目B(即使用Build Project选项),一切正常 - 它正确地从构建它的位置选择foo.exe以前,失败,构建。这让我觉得这条道路至少必须没问题。

任何人都可以建议为什么可执行文件不能作为重建的一部分运行?这是一个时间问题,例如项目B在文件系统知道foo.exe之前开始了吗?

这一切都在Visual Studio的常规(重新)构建下工作。只是Incredibuild重建失败了。请注意,我通过Visual Studio IDE完成所有这些操作,而不是从命令行完成。

编辑:这是我使用的免费版本的Incredibuild(Visual Studio附带的版本),因此所有版本都在本地计算机上。

2 个答案:

答案 0 :(得分:1)

我最终联系了Xoreax技术支持,他们告诉我这是一个“罕见但已知的问题,与我们的其中一个加速功能相关”。

他们的第一个建议是编写一个可执行文件,它只是“睡了几毫秒”并将其作为自定义构建工具后链接的一部分运行。这确实解决了当前的问题,但我正在构建的解决方案存在许多类似的问题,并且在所有地方添加这种延迟很快变得乏味并且并不总是有效。无论如何,这感觉就像一块软糖。

所以我问这个行为是否可以切换到关闭,事实上它可以。在Visual Studio中,Incredibuild菜单具有“代理设置”选项,并且从调用的对话框的“Visual Studio构建|高级”页面中,可以取消选中使用无序任务生成增强吞吐量选项。< / p>

案件结案。

答案 1 :(得分:0)

有一些选项可以在构建过程中卸载或拦截自定义工具。尝试查看“ c:\ program files(x86)\ IncrediBuild \ Samples”