15
devenv mysolution.sln /build "Release|Win32" /project myproject

从命令行构建时,似乎我可以选择执行/buildor /rebuild,但没有办法说我想做“仅项目”(即也不构建或重建指定项目的依赖项)。有谁知道一种方法?

4

7 回答 7

21

根据您的构建系统的结构,这可能是您正在寻找的:

msbuild /p:BuildProjectReferences=false project.proj
于 2008-09-23T20:30:17.313 回答
10

MSBuild是你想要的

MSBuild.exe MyProject.proj /t:build
于 2008-09-23T20:27:49.940 回答
3

不要调用devenv,而是使用通用的构建工具:

vcbuild subproject.vcproj "release|win32"
于 2008-09-23T20:27:42.637 回答
1

根据 MSDN How To: Build Specific Targets in Solutions with MSBuild.exe

msbuild foo.sln /t:proj1:Rebuild;folder_of_proj2\proj2:Clean
于 2010-09-28T13:37:09.307 回答
1

如何构建一个项目,而不是一个完整的解决方案 - MSDN 文章

于 2011-04-04T06:54:41.753 回答
0

感谢您的回答。我从一些研究中看到msbuild它可以处理.sln文件而不是.vcproj; 这可以通过这种方式完成,而不必知道 的位置.vcproj

让我退后一步。我们有一个很大的解决方案文件,我想要一个脚本来执行此操作:

  1. 做一个/build整体解决方案。
    (有时有些项目会失败,因为devenv没有按照自上次构建以来的更改量进行所需的构建。)
  2. 对于每个失败的项目,做一个/rebuild

当我进入第 2 步时,我只知道解决方案文件名和失败项目的名称(不是文件名)。我可以轻松地grep/ awk/无论.sln文件从一个映射到另一个,但我很好奇是否msbuild提供了一种直接执行此操作的方法。

(理想情况下,我可以在一个命令行中给出要重建的所有msbuild项目的.sln名称和名称,因为它是一个大文件并且需要一段时间才能加载。如果这不可能,那么手动查找所有项目文件名的选项可能会更好因为每次加载解决方案文件效率最低。)

于 2008-09-23T21:28:01.637 回答
0

以下适用于在 VS2010 中构建单个 C++ 项目:

call "%VS100COMNTOOLS%"\\vsvars32.bat
msbuild /detailedsummary /p:Configuration=Debug /p:Platform=x64 /t:build MY_ABSOLUTE_PATH.vcxproj

遗憾的是,您不能简单地指定项目名称和解决方案文件来构建该项目(除非您可能会向项目文件添加特殊配置)。

于 2013-03-22T22:10:00.757 回答