繁体   English   中英

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

[英]How do I compile a Visual Studio project from the command-line?

我正在为使用MonotoneCMake 、 Visual Studio Express 2008 和自定义测试的大型 C++ 解决方案编写结帐、构建、分发、测试和提交周期脚本。

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

该脚本是在 Python 中编写的,但是一个答案可以让我打电话给:os.system 就可以了。

我知道有两种方法可以做到。

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

msbuild project.sln /Flags...

方法2
你也可以运行:

vcexpress project.sln /build /Flags...

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

请注意,DevEnv不随Visual Studio Express 2008一起发布(当我第一次遇到类似问题时,我花了很多时间试图解决这个问题)。

所以,最终结果可能是:

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

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

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. 运行COMMAND窗口

  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. ENTER键

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

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

正如其他人所指出的那样使用msbuild为我工作但我需要做的不仅仅是那个。 首先, 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

那条线终于让我编译了我的项目。

额外奖励 :似乎命令行工具在使用它们30天后不需要注册,就像基于GUI的“免费”Visual Studio社区版一样。 有了Microsoft注册要求,该版本几乎不免费。 如果有的话,免费在Facebook上...

MSBuild是你的朋友。

msbuild "C:\path to solution\project.sln"

DEVENV在很多情况下运行良好,但在WIXPROJ上构建我的WIX安装程序,我得到的只是Out日志中的“CATASTROPHIC”错误。

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

dotnet build似乎是构建解决方案的最新方法。

https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-build

对于使用 vs2019 构建 x64 平台目标:

清理项目

devenv *.sln /Clean "Release|x64"


构建或重建项目

devenv *.sln /Build "Release|x64"

devenv *.sln /重建“发布|x64”

MSBuild 和 DevEnv 都理所当然地在此处的答案中建议作为从命令行构建的方法。 我想指出的是,微软是这样说的: “一般来说,DEVENV 比直接使用 MSBuild 更受欢迎,因为您可以让 Visual Studio 处理 MSBuild 的复杂性。”

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM