我有一个我正在尝试使用 Incredibuild 工具构建的 Visual Studio 解决方案。解决方案中的两个项目协同工作 - 第一个项目(我们将其称为“项目 A”)构建一个可执行文件(foo.exe),该可执行文件可以解析第二个项目(“项目 B”)中的数据文件以生成一些头文件。
显然,在项目 B 中定义了对项目 A 的依赖。如果我在项目 B 上使用 Incredibuild 的 Rebuild Project 选项,它会正确构建项目 A 并成功构建 foo.exe。项目 B 有一个自定义构建工具文件,它应该导致 foo.exe 使用它应该解析的文件的命令行参数运行。但是,尝试以这种方式启动 foo.exe 总是会返回错误:
自定义构建:
运行 Foo
' path to executable \foo.exe' 未被识别为内部或外部命令、可运行程序或批处理文件。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5):错误 MSB6006:“cmd.exe”退出,代码为 9009。
有趣的是,如果我随后使用 Incredibuild仅构建项目 B(即使用“构建项目”选项),一切正常 - 它正确地从它在之前构建的位置选择 foo.exe,失败,构建。这让我觉得至少这条路一定没问题。
谁能建议为什么可执行文件不能作为重建的一部分运行?是否是时间问题,例如项目 B 在文件系统知道 foo.exe 之前开始?
这一切都在 Visual Studio 的常规(重新)构建下工作。只是 Incredibuild 重建失败了。请注意,我是通过 Visual Studio IDE 完成所有这些操作,而不是通过命令行。
编辑:这是我正在使用的 Incredibuild 的免费版本(Visual Studio 附带的版本),因此所有构建都在本地计算机上。