我正在维护一个构建脚本,该脚本从命令行调用devenv或Incredibuild,以构建由数百个项目组成的动态生成的Visual C ++ 2010解决方案。我们正在研究如何改进我们的构建,我想知道是否有办法告诉VS避免使用中间目录。
例如,假设我在解决方案Foo
中有一个项目Bar
。当我构建Bar
时,Foo
的输出最终都在Bar/Foo/$(Configuration)/$(Platform)
和Bar/$(Configuration)/$(Platform)
中。
我想知道是否有一种方法(从命令行或通过编辑项目文件)直接在解决方案的输出目录中进行devenv构建,并且只在那里。另外,为什么我应该/不应该做这样的事情有什么理由吗?
答案 0 :(得分:5)
只需将.vcxproj文件中的中间目录路径设置为与解决方案输出目录相同。
假设您的项目彼此没有相同的输出文件名,那么混合中间目录没有问题。您还可以将其设置为在TEMP下或另一个驱动器上创建所有中间目录。
答案 1 :(得分:3)
不要那样做! 因为在MSBuild中存在一个错误(我将此行为称为错误),当您重建项目时,将删除使用相同中间目录的所有项目的所有文件。 项目构建之前的输出文件夹...