使用devenv/MSBuild在命令行编译sln或csproj

使用devenv/MSBuild在命令行编译sln或csproj

一 使用devenv来build单个project

devenv 是 Visual Studio 的可执行程序,通常安装在 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 目录下。它可以用于在命令行或图形用户界面(GUI)方式下运行 Visual Studio。其中 devenv.com 是命令行版本,而 devenv.exe 则是 GUI 版本。默认情况下,当你调用 devenv 时,实际上是启动了 devenv.com,除非显式调用 devenv.exe 才会启动 GUI 版本的 Visual Studio。

使用 devenv 来构建一个 .sln 文件的示例:

devenv d:\Build\MyProject\Src\MyProject.sln /Build "Release|Win32"

使用 devenv 来构建一个 .sln 文件中的特定项目:

devenv.exe d:\Build\MyProject\Src\MyProject.sln /build "Release|Win32" /Project MyProject1

请注意,解决方案文件(.sln)中的多个项目之间可能存在依赖关系,因此即使您只构建解决方案中的一个项目,也需要指定项目的所属解决方案文件(.sln),并通过 /Project 参数指定项目的名称。

如果仅需构建单个项目且该项目未引用其他项目,可以直接构建项目文件:

devenv d:\Build\MyProject\Src\MyProject.vcxproj /Build "Release|Win32"

在这种情况下,devenv 将执行以下操作:

  • 首先,在项目文件的父目录中查找与项目同名的解决方案文件(.sln);
  • 如果未找到,则尝试查找其他引用了该项目的解决方案文件;
  • 若仍未找到,将创建一个临时的、不保存的与项目同名的解决方案文件(.sln)。

devenv 的更多帮助

可以使用 devenv /? 查看详细的帮助信息。需要注意的是:

  • 当解决方案或项目的路径包含空格时,应对路径加上双引号;
  • 多个选项之间应以空格分隔;
  • devenv 不支持通配符或正则表达式语法。

三 MSBuild

如果您未安装 Visual Studio,也可以使用 MSBuild 来构建解决方案或项目。MSBuild 可以通过安装 .NET Framework 获得,通常安装在 C:\Windows\Microsoft.NET\Framework 目录下。实际上,当 devenv 执行构建时,也会在后台调用 MSBuild 来完成构建过程。

可以使用 msbuild /? 查看详细的帮助信息。

简单示例:

MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
MSBuild MyApp.csproj /t:Clean /p:Configuration=Debug;/p:Platform=x86;TargetFrameworkVersion=v3.5

同样需要注意,如果项目引用了其他项目,最好构建整个解决方案(.sln)。

参考链接


使用devenv/MSBuild在命令行编译sln或csproj
https://www.dearcloud.cn/2016/03/04/20200310-cnblogs-old-posts/20160304-使用devenvMSBuild在命令行编译sln或csproj/
作者
宋兴柱
发布于
2016年3月4日
许可协议