代码之家  ›  专栏  ›  技术社区  ›  Owen

从命令行生成visual studio“仅项目”的方法是什么?

  •  14
  • Owen  · 技术社区  · 17 年前
    devenv mysolution.sln /build "Release|Win32" /project myproject
    

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

    7 回复  |  直到 13 年前
        1
  •  17
  •   Derek Slager    17 年前

    根据构建系统的结构,这可能是您要查找的:

    msbuild /p:BuildProjectReferences=false project.proj
    
        2
  •  10
  •   Xian    17 年前

    MSBuild 是你想要的

    MSBuild.exe MyProject.proj /t:build
    
        3
  •  3
  •   Ben Straub    17 年前

    不要打电话 devenv ,请改用通用生成工具:

    vcbuild subproject.vcproj "release|win32"
    
        4
  •  1
  •   Ilia K.    15 年前

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

    msbuild foo.sln /t:proj1:Rebuild;folder_of_proj2\proj2:Clean
    
        5
  •  1
  •   cr_az    15 年前

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

        6
  •  0
  •   Owen    17 年前

    谢谢你的回答。我从一点调查中看到 msbuild 它可以处理一个 .sln 文件而不是 .vcproj 这样能做到这一点而不必知道 VCPROJ ?

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

    1. 做一个 /build 总的来说。
      (有时有些项目失败是因为 devenv 对于自上一次构建以来的更改量而言,所做的构建工作不如所需的那么多。)
    2. 对于每个失败的项目,执行 /rebuild 关于它。

    当我进入步骤2时,我只知道解决方案文件名和失败项目的名称(而不是文件名)。我很容易 grep / awk /不管是什么 SLN 从一个文件映射到另一个文件,但我想知道 MSBube 提供了一种直接实现的方法。

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

        7
  •  0
  •   Denkkar    13 年前

    下面的工作对于在VS2010中构建单个C++项目很有帮助:

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

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