任何方式从命令行做Visual Studio“仅项目”构建?

时间:2008-09-23 20:24:34

标签: visual-studio visual-studio-2008 command-line

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

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

7 个答案:

答案 0 :(得分:17)

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

msbuild /p:BuildProjectReferences=false project.proj

答案 1 :(得分:10)

MSBuild就是你想要的

MSBuild.exe MyProject.proj /t:build

答案 2 :(得分:3)

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

vcbuild subproject.vcproj "release|win32"

答案 3 :(得分:1)

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

msbuild foo.sln /t:proj1:Rebuild;folder_of_proj2\proj2:Clean

答案 4 :(得分:1)

如何构建项目,而不是整个解决方案 - MSDN article

答案 5 :(得分:0)

感谢您的回答。我从一点msbuild看到它可以处理.sln文件而不是.vcproj;这可以通过这种方式实现,而不必知道.vcproj的位置吗?

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

  1. 对整个解决方案进行/build (有时一些项目会失败,因为devenv对自上次构建以来的更改量所需的构建量不会那么多。)
  2. 对于每个失败的项目,请在其上执行/rebuild
  3. 当我进入第2步时,我所知道的是解决方案文件名和失败项目的名称(不是文件名)。我可以轻松地grep / awk /无论.sln文件从一个映射到另一个,但我很好奇msbuild是否提供了直接执行此操作的方法。

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

答案 6 :(得分:0)

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

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

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