最近在看一些算法和测试一些程序,以及帮团队测试程序,团队使用了vs开发环境创建的sln项目文件,我使用的是公司的机器,没有任何权限安装程序等操作,但是又需要编译一些程序,所以我想到了,使用MSBuild.exe进行编译。

如果你的机器上没有装有VisualStudio,那么可以使用MSBuild来build .sln或project。可以不用安装vs程序,MSBuild可以通过安装.NETFramework来安装,一般的安装路径为C:\Windows\Microsoft.NET\Framework。其实devenv执行build时候,后台也是调用MSBuild来build的。

可以使用msbuild /?来查看详细的帮助;

今天就简单的介绍下使用MSBuild.exe编译程序的方法:

  1. 确认你使用的vs的版本,这个可以从sln文件中看到,不会看的可以查百度
  2. 确认你本机已经安装了那个版本的MSBuild.exe程序,具体的可以使用dir查看,如:C:\>dir /s /b /d  MSBuild.exe 可以查看本机各个版本。
  3. 使用对应版本的MSBuild.exe编译sln文件,例如编译vs2015编写的程序:
  1. %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "c:\test\test1.sln" /property:Configuration=Debug /t:build /p:VisualStudioVersion=14.0

说明:如果你想编译单个文件,或者是测试某段程序算法等,可以不用考虑使用那个版本的MSBuild.exe程序。

简单实例:

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

同样注意,如果project引用了其他的projects的时候,最好build整个.sln。

参考: MSBuild入门     MSBuild入门(续)     MSBuild功能介绍

=================================================================================================

参考如下:

背景:VS很好很强大,但太费系统资源了,尤其是在虚拟机在里面装VS的时候更是如此。有时用vi编辑了源代码后,不想开VS IDE编译,但每次打开VS命令行,再切换到工程所在目录,然后手动敲命令太麻烦了。于是产生了集成集成VS命令行编译到.sln文件右键菜单的想法。

直接上图:

本版本支持 Win10 + VS2015

*******************************************************************
*
*  小工具:不用打开项目,右键直接编译*.sln,*.csproj,绿色环保
*
*******************************************************************
 
需要三步:
 
1 必需copy本目录到C:\
 
2 运行Install.reg。(反安装运行Unstall.reg)
 
3 右键*.sln 或 *.csproj 文件会有相应编译菜单出现。

下载: VSBuild(Win10-VS2015).zip

  

出处:http://www.cnblogs.com/crazybird/p/5103906.html

======================================================

临时手写了个,可以参考吧

  1. @ECHO OFF
  2. set ms="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe"
  3. cls
  4. %ms% /version
  5. color 0c
  6. ECHO.
  7. ECHO.
  8. echo Do you use this version of MSBuild.exe to compile the current program? Close this window if you don't compile.
  9. pause
  10. color
  11. GOTO End
  12.  
  13. IF /I "%1"=="Debug" GOTO BuildDebug
  14. IF /I "%1"=="Release" GOTO BuildRelease
  15. IF /I "%1"=="All" GOTO BuildAll
  16. IF /I "%1"=="Minimal" GOTO BuildMinimal
  17.  
  18. :ER
  19. ECHO.
  20. ECHO Raspkate Command-Line Build Tool v1.
  21. ECHO.
  22. ECHO Usage:
  23. ECHO build.bat Debug
  24. ECHO Builds the Raspkate with Debug configuration.
  25. ECHO.
  26. ECHO build.bat Release
  27. ECHO Builds the Raspkate with Release configuration.
  28. ECHO.
  29. GOTO End
  30.  
  31. :BuildDebug
  32. %ms% /p:Configuration="Debug";TargetFrameworkVersion="v4.5.2" Raspkate.sln
  33. GOTO End
  34.  
  35. :BuildRelease
  36. %ms% /p:Configuration="Release";TargetFrameworkVersion="v4.5.2" Raspkate.sln
  37. GOTO End
  38.  
  39. :BuildAll
  40. %ms% /p:Configuration="All";TargetFrameworkVersion="v4.5.2" Raspkate.sln
  41. GOTO End
  42.  
  43. :BuildMinimal
  44. %ms% /p:Configuration="Minimal";TargetFrameworkVersion="v4.5.2" Raspkate.sln
  45. GOTO End
  46.  
  47. :End
  48. @ECHO ON

优化版本

  1. @ECHO OFF
  2. :: 建议使用开发时使用VS的版本对应的MSBuild.exe程序
  3. set ms="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe"
  4. cls
  5. %ms% /version
  6. ECHO,
  7. IF /I "%1"=="Debug" GOTO BuildDebug
  8. IF /I "%1"=="Release" GOTO BuildRelease
  9. IF /I "%1"=="All" GOTO BuildAll
  10. IF /I "%1"=="Minimal" GOTO BuildMinimal
  11.  
  12. color 0c
  13. ECHO,
  14. ECHO,
  15. echo Do you use this version of MSBuild.exe to compile the current program? Close this window if you don't compile.
  16. echo,&&echo :Building projects with Debug models
  17. echo,&&echo :Building projects with Release models
  18. echo,&&echo :Building projects with Minimal models
  19. echo,&&echo :Building projects with All models
  20. echo;
  21. set /p buildType=Please enter number of your build mode :
  22.  
  23. ::pause
  24. color
  25. ::GOTO End
  26.  
  27. IF /I "%buildType%"=="" GOTO BuildDebug
  28. IF /I "%buildType%"=="" GOTO BuildRelease
  29. IF /I "%buildType%"=="" GOTO BuildMinimal
  30. IF /I "%buildType%"=="" GOTO BuildAll
  31.  
  32. :ER
  33. ECHO,
  34. ECHO MSBuild.exe Command-Line Build Tool v1.
  35. ECHO,
  36. ECHO Usage:
  37. ECHO build.bat Debug
  38. ECHO Builds the Solution or Project with Debug configuration.
  39. ECHO,
  40. ECHO build.bat Release
  41. ECHO Builds the Solution or Project with Release configuration.
  42. ECHO,
  43. GOTO End
  44.  
  45. :BuildDebug
  46. echo you chose Debug build
  47. %ms% /p:Configuration="Debug" Car.sln
  48. echo you chose Debug build completed
  49. GOTO End
  50.  
  51. :BuildRelease
  52. echo you chose Release build
  53. %ms% /p:Configuration="Release" Car.sln
  54. echo you chose Release build completed
  55. GOTO End
  56.  
  57. :BuildAll
  58. echo you chose All build
  59. %ms% /p:Configuration="All" Car.sln
  60. echo you chose All build completed
  61. GOTO End
  62.  
  63. :BuildMinimal
  64. echo you chose Minimal build
  65. %ms% /p:Configuration="Minimal" Car.sln
  66. echo you chose Minimal build completed
  67. GOTO End
  68.  
  69. :End
  70. pause
  71. @ECHO ON

使用微软的MSBuild.exe编译VS .sln .csproj 文件的更多相关文章

  1. VS .sln .csproj 文件的右键编译

    背景:VS很好很强大,但太费系统资源了,尤其是在虚拟机在里面装VS的时候更是如此.有时用vi编辑了源代码后,不想开VS IDE编译,但每次打开VS命令行,再切换到工程所在目录,然后手动敲命令太麻烦了. ...

  2. 如何使用 MSBuild.exe 生成解决方案中的特定目标

    以前都是直接使用VS或者msbuild生成整个解决方案,或者只构建单个工程. 这回使用msbuild构建单个工程的时候出现了问题,因为工程中使用了SolutionDir这个宏来定位第三方库路径. 对于 ...

  3. 使用msbuild.exe绕过应用程序白名单(多种方法)

      一.MSbuild.exe简介 Microsoft Build Engine是一个用于构建应用程序的平台.此引擎也被称为msbuild,它为项目文件提供一个XML模式,该模式控制构建平台如何处理和 ...

  4. 使用CSC.EXE编译第一个HELLO WORLD

    坐的没事,下了个C#2008,看帮助文件写了个HELLO.CS的源文件: //hello.cs //Show "Hello Word!" using system; class h ...

  5. 调用Visual Studio的cl.exe编译C/C++程序

    @ 目录 调用Visual Studio的cl.exe编译C/C++程序 前言 1.查看VS的路径 2.添加环境变量 3.查看设置是否生效 4.配置Notepad++ 调用Visual Studio的 ...

  6. 用资源管理器右键编译 Visual Studio 解决方案文件

    每次改动 VC 工程之后都要重新编译,每次 VS 又会生成调试数据库文件,很费时间,于是研究了一下如何在资源管理器中直接编译,还真发现了解决办法. 以下是适用 Visual Studio 2008 的 ...

  7. 几种工具反编译被编译好的DLL文件

    我们平时在工作中经常会遇到一些已经被编译后的DLL,而且更加麻烦是没有源代码可以进行修改,只能针对这个DLL的文件进行修改才能得到我们想要的结果:本文将通过一个实例来演示如果完成一个简单的修改;我们将 ...

  8. gcc for windows(mingw)编译多个c文件

    myString.c myString.h main.c 其中,myString.c与myString.h对应,myString.h文件中是一些函数的声明,而myString.c文件中是.h文件中声明 ...

  9. [vim配置]windows下在vim中使用gcc/g++编译调试c/cpp文件

    在Linux里面混了一个多月,vim编程用得甚爽.无奈前天将Linux里面的编程文件夹误删,而技术不精无法找回,悲痛欲绝.再者,无限怀念windows里面的游戏,并觉得现在在Linux里面也学不到什么 ...

随机推荐

  1. 0927-转载:SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释

    这篇文章暂时只对框架中所要用到的配置文件进行解释说明,而且是针对注解形式的,框架运转的具体流程过两天再进行总结. spring+springmvc+mybatis框架中用到了三个XML配置文件:web ...

  2. bzoj 1623: [Usaco2008 Open]Cow Cars 奶牛飞车

    1623: [Usaco2008 Open]Cow Cars 奶牛飞车 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 325  Solved: 223[S ...

  3. SpringBoot 通用返回类设计

    在项目中通常需要为前端设计通过的返回类,返回的格式为: { "status": "success", "data": {...} } 定义通 ...

  4. Python 类的三大特性的综合运用 案例

    # --------------------- 类的三大特性的综合运用 案例 ------------------------- # 定义三个类:小狗,小猫,人 # 小狗:姓名,年龄(默认1岁) 吃饭 ...

  5. [算法]Plus One

    Question: Given a non-negative number represented as an array of digits, plus one to the number. The ...

  6. C语言中链接影响程序的细节

    参考:<深入理解计算机系统>  7.61节  链接器如何解析多重定义的全局符号 基本的原则是这样的:对于所有的全局符号,函数和已初始化的全局变量是强符号,未初始化的全局变量是弱符号. Un ...

  7. HTML5 ——web audio API 音乐可视化(二)

    上一篇 web audio API 音乐可视化(一)介绍了一些基本的API,以及如何简单的播放一个音频,本篇介绍一下怎么对获取到的音频进行分析,并将分析后的数据绘制成图像. 最终效果请戳这里; 完整版 ...

  8. DatePicker日期与时间控件

    DatePicker日期与时间控件 一.简介 二.方法 最日常的使用方法了 日期控件DatePicker 时间控件TimePicker 月份从0开始 三.代码实例 效果图: 代码: fry.Activ ...

  9. git一个系列教程

    https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%8 ...

  10. Python globals() locals() vars() 三个内建函数的区别

    首先参考官方文档对这三个函数的介绍: 2. Built-in Functions – Python3.5 1.globals() 返回当前全局符号表, 通常是返回当前模块下的全局符号表, 比如全局内建 ...