代码之家  ›  专栏  ›  技术社区  ›  John Mulder

如何从命令行编译VisualStudio项目?

  •  97
  • John Mulder  · 技术社区  · 16 年前

    我正在编写一个使用的大型C++解决方案的签出、构建、分发、测试和提交循环。 Monotone CMake 、Visual Studio Express 2008和自定义测试。

    所有其他部分看起来都很简单,但我不知道如何在没有GUI的情况下编译VisualStudio解决方案。

    6 回复  |  直到 15 年前
        1
  •  131
  •   ks1322    12 年前

    方法1
    第一种方法(我更喜欢)是使用 msbuild :

    msbuild project.sln /Flags...
    

    方法2
    您还可以运行:

    vcexpress project.sln /build /Flags...
    

    vcexpress选项立即返回,不打印任何输出。我想这可能就是你想要的剧本。

    请注意,DevEnv不是随VisualStudioExpress 2008一起发布的(我第一次遇到类似问题时花了很多时间试图弄清楚这一点)。

    因此,最终结果可能是:

    os.system("msbuild project.sln /p:Configuration=Debug")
    

    os.putenv ).

        2
  •  57
  •   Jeffrey Hantin    13 年前

    MSBuild通常可以工作,但我以前遇到过困难。你的运气可能会更好

    devenv YourSolution.sln /Build 
    
        3
  •  26
  •   NoWar    11 年前

    老实说,我得加上2美分。

    你可以用它来做 . 有许多版本的 msbuild.exe .

    C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe
    C:\Windows\Microsoft.NET\Framework\v2.0.50727\msbuild.exe C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

    那么怎么做呢。

    1. 运行 命令

    2. 输入msbuild.exe的路径

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

    1. 输入项目解决方案的路径,如

    “C:\Users\Clark.Kent\Documents\visual studio 2012\Projects\WpfApplication1\WpfApplication1.sln“

    1. 在解决方案路径后添加所需的任何标志。

    注意,您可以获得有关所有可能标志的帮助,如

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe/help

        4
  •  11
  •   josch    9 年前

    msbuild 正如其他人指出的那样,这对我很有效,但我需要做的不仅仅是这些。首先 需要有权访问编译器。这可以通过运行以下命令来完成:

    "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
    

    然后 msbuild 不在我的$PATH中,因此我必须通过其显式路径运行它:

    "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" myproj.sln
    

    最后,我的项目使用了一些变量,比如 $(VisualStudioDir) . 似乎这些都没有被设定 msbuild /property

    "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" /property:VisualStudioDir="C:\Users\Administrator\Documents\Visual Studio 2013" myproj.sln
    

    这一行最终允许我编译我的项目。

    奖金

        5
  •  4
  •   Peter Mortensen icecrime    10 年前

    MSBuild is your friend.

    msbuild "C:\path to solution\project.sln"
    
        6
  •  3
  •   peter.cyc    10 年前

    DEVENV在很多情况下都工作得很好,但是在WIXPROJ上构建我的WIX安装程序时,我得到的只是输出日志中的“灾难性”错误。

    MSBUILD/Path/PROJECT.WIXPROJ/t:Build/p:Configuration=Release

        8
  •  -1
  •   D.Howell    4 年前

    在这里的答案中,MSBuild和DevEnv都被正确地建议作为从命令行生成的方法。我想指出,微软是这样说的:

    Reference