incredbuild,msbuild 命令行调用实现自动化编译
来源:互联网 发布:ubuntu c语言调试工具 编辑:程序博客网 时间:2024/04/20 21:13
一、MSBuild.exe实现自动化编译
.net Framework 提供的 MSBuild 工具可以方便我们在没有安装 Visual Studio 2005 的系统中编译项目解决方案,当然还可以与用相关工具组合进行 DailyBuild。
先看一个例子,在解决方案目录(Test.sln)命令行输入下面的命令,将会自动编译解决方案。
- MSBuild.exe Test.sln /t:Rebuild /M:1 /p:Configuration=Debug|Release /fl /flp:FileLogger,Microsoft.Build.Engine;logfile=Build.log;errorsonly;Encoding=UTF-8
常用参数说明:
/t:Rebuild|Clearn 生成目标
/p:Configuration=Debug|Release 项目属性
/m[:number] 指定Building时最大并发进程数
/fl 输出Build日志
/flp:FileLogger,Microsoft.Build.Engine;logfile=Build.log;errorsonly;Encoding=UTF-8 指定日志记录的额外参数,如仅打印error日志,使用UTF-8编码格式
/clp:PerformanceSummary 显示任务、目标和项目花费的时间
参考资料:
1.MSDN关于MSBulid的参数的最全资料:http://msdn.microsoft.com/en-us/library/vstudio/ms164311.aspx
2.http://blog.csdn.net/gamecreating/article/details/5186439
二、IncrediBuild的命令行接口——BuildConsole.exe实现自动化编译
IncrediBuild(分布式编译或称联合编译)的命令行调用:
BuildConsole是IncrediBuild的命令行接口,例如:
- BuildConsole.exe test.sln /prj="*" /rebuild /All /Log=test.log /OpenMonitor /cfg="Debug|Win32,Release|Win32"
这里表示编译test.sln解决方案的所有工程,若编译失败其他工程继续编译,打印build日志,打开编译监视器,编译配置的版本为Debug|Win32,Release|Win32。
常用参数说明:
/prj :要编译什么工程(一个解决方案中可能有多个工程),工程名用逗号隔开,支持*和?通配符
/build :就是编译
/rebuild:就是clean & build
/All 正常情况下一个工程编译失败IncrediBuild就会停止编译,加上这个参数后会忽略编译失败的工程继续编译其他工程
/OpenMonitor:会把编译过程窗口打开
/cfg:编译条件选择
BuildConsole的返回值:
0:成功
1:操作过程中发生错误
2:严重错误,如无效参数、未发现输入文件等
3:编译完成前被停止
例如写一个bat,使用BuildConsole进行自动化编译,并根据返回值判断是否编译成功:
- BuildConsole test2.sln /prj="*" /rebuild /OpenMonitor /cfg="Win32|Debug"
- IF %ERRORLEVEL% NEQ 0 pause
上面的%ERRORLEVEL%即可获得返回值(这个方法找了好久!)
参考资料:
1.IncrediBuild官网关于BuildConsole.exe的最全介绍:http://www.incredibuild.com/webhelp/BuildConsole.html
三、MSBuild命令移植为BuildConsole命令举例:
举例:
- MSBuild.exe Test.sln /t:Rebuild /M:1 /p:Configuration=Debug|Release /fl /flp:FileLogger,Microsoft.Build.Engine;logfile=Build.log;errorsonly;Encoding=UTF-8
- BuildConsole Test.sln /prj="*" /rebuild /cfg="Debug|win32,Release|win32" /Log=Build.log /All
- IF %ERRORLEVEL% NEQ 0 pause
打完收工~~
- incredbuild,msbuild 命令行调用实现自动化编译
- MSBuild命令行编译Xamarin 项目
- 分布式编译IncredBuild
- MSBulid、IncrediBuild命令行接口实现自动化编译
- MSBUILD 命令行编译的时候请注意msbuild文件名称或路经中空格导致出错
- 使用devenv/MSBuild在命令行编译单个project
- 使用devenv/MSBuild在命令行编译单个project
- 使用devenv/MSBuild在命令行编译单个project
- MSBuild 命令行编译项目且不包含pdb文件
- 使用devenv/MSBuild在命令行编译sln或csproj
- MTK分布式编译提高编译速度(IncredBuild)
- MSBuild 命令行参考
- MSBuild + MSILInect实现编译时AOP之预览
- MSBuild + MSILInect实现编译时AOP-改变前后对比
- 使用Perforce命令行实现自动化
- MTK分布式编译提高编译速度(IncredBuild) 收藏
- 感悟自动化编译实现
- Visual Studio编译:MSBuild
- BOOL,int,float,指针变量 与“零值”比较的if语句
- Java实现敏感词过滤
- 内核调试神器SystemTap — 简介与使用
- Eclipser安装插件后无法启动
- 验证终端输入的C代码中花括号的正确成对出现
- incredbuild,msbuild 命令行调用实现自动化编译
- android httpclient与webview cookie同步
- 安卓的挂电话解析三
- HDU 2855Fibonacci Check-up 构造矩阵
- 写在大三后季!
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(三·完结)
- Android 获取屏幕尺寸与密度
- 广东创龙OMAPL138开发的学习经验
- 让ExpandableListView的Group点击时不收缩