【问题标题】:Any way to do Visual Studio "project only" build from command line?有什么方法可以从命令行构建 Visual Studio“仅项目”?
【发布时间】:2008-09-23 20:24:34
【问题描述】:
devenv mysolution.sln /build "Release|Win32" /project myproject

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

【问题讨论】:

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


【解决方案1】:

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

msbuild /p:BuildProjectReferences=false project.proj

【讨论】:

  • 当我们仅在项目(而非解决方案)文件的上下文中时,BuildProjectReferences=false 是否会有所作为?
  • 谢谢,这对我有用! :) @Owen,是的,例如,如果您的 vcxproj 文件中有项目引用,则可以。
【解决方案2】:

MSBuild是你想要的

MSBuild.exe MyProject.proj /t:build

【讨论】:

    【解决方案3】:

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

    vcbuild subproject.vcproj "release|win32"
    

    【讨论】:

    • 与msbuild相比,vcbuild有什么优点或缺点吗?
    • 对于 C/C++ 项目,msbuild 实际上将 vcbuild 作为子进程运行。所以是的。和不。 :)
    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

      • 链接已损坏。
      【解决方案6】:

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

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

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

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

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

      【讨论】:

        【解决方案7】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-05
          • 1970-01-01
          • 1970-01-01
          • 2017-05-31
          • 2014-09-13
          • 2022-10-15
          • 2012-07-17
          • 2018-06-05
          相关资源
          最近更新 更多