如何从命令行编译Visual Studio项目?

2024-05-17 02:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

这个脚本是用Python编写的,但是一个只允许我调用os.system的答案就可以了。


Tags: 答案脚本cmakeos情况gui解决方案system
3条回答

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

devenv YourSolution.sln /Build 

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

您可以使用msbuild.exe来完成此操作。msbuild.exe有很多版本。

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\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. 在解决方案路径后添加所需的任何标志。

  2. 按回车键

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

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

我知道两种方法。

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

msbuild project.sln /Flags...

方法2
您还可以运行:

vcexpress project.sln /build /Flags...

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

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

因此,最终的结果可能是:

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

您还需要确保您的环境变量是正确的,因为msbuild和vcexpress在系统路径上默认不是正确的。启动Visual Studio构建环境并从那里运行脚本,或者在Python中修改路径(使用os.putenv)。

相关问题 更多 >