一、前言

由于公司要求项目需要走CI构建平台,抛弃掉之前的人工编译打包方式,所以需要调研一下项目怎么通过命令行编译出产物。

二、准备工作

  1. 在构建机器上安装vs(本文示例为vs2017)
  2. 将代码上传版本控制仓库(本文示例为Gitlab),并确保构建机器可以正常访问并下载源代码
  3. 确保构建机器可以正常编译目标项目,最快捷的方案就是在构建机器上跑一下
  4. 修改项目的编译配置及平台,例如我设置了Release+CI作为CI构建用的配置,并把输出路径改为了..\CIResult\

三、编写构建命令

  1. 找到vs的安装路径,找到devenv.exe,例如D:\VS2017\Common7\IDE\devenv.exe
  2. 明确自己需要编译的解决方案的名称,例如:ABC.sln
  3. 明确自己需要使用的编译设置,例如前文设置好的:Release + CI
  4. 编写编译命令,例如:"D:\VS2017\Common7\IDE\devenv.exe" devenv "ABC.sln" /rebuild "Release|CI" /out courtClient.log
  5. 执行命令,就可以到..\CIResult\去获取产物了,如果嫌弃文件夹麻烦,可以在编译完成后再加一句命令WinRAR a -r ABC.zip CIResult\*来打个压缩包。

四、注意事项

  1. 如果项目中使用了nuget管理引用的组件,建议把packages文件夹加入源代码仓库中,因为我不知道怎么让vs在编译前自动下载包并还原,只能用这个笨方法了。附上git的文件包含脚本,打开.gitignore文件加上一行!/packages/*
  2. 编译的错误日志打在了courtClient.log文件里

五、结束

自己摸索的,也踩了些坑最后总结出的方法,可能不是很合理,希望大佬们如果有更好的方法可以批评指正。

最新文章

  1. percona-toolkit 之 【pt-online-schema-change】说明
  2. 常用CSS Reset汇总
  3. MATLAB代码加密生成.p文件
  4. Dedecms include\dialog\select_soft_post.php Upload Any Files To The Specified Directory Via Variable Not Initial Flaw Bypass Extension Defence
  5. jquery easy ui 1.3.4 快速入门(1)
  6. [原]素数筛法【Sieve Of Eratosthenes + Sieve Of Euler】
  7. Partitioning by Palindromes
  8. Android Animation
  9. Oracle数据库的创建与验证
  10. css 问题总结
  11. Python学习笔记2
  12. 使用nfs作为根文件系统启动,(3)
  13. Python模拟弹道轨迹
  14. Linux 用户切换、修改用户名、修改密码
  15. PHP PC端微信扫码支付【模式二】详细教程-附带源码(转)
  16. db2 查询表前几行
  17. Hibernate 再接触 集合映射
  18. Python数据类型之list和tuple
  19. cpu中的缓存和操作系统中的缓存分别是什么?
  20. Mybatis多参数查询映射

热门文章

  1. 百度全景地图使用时提示flash版本过低 如何处理?
  2. ThreadLocal深度解析和应用示例
  3. 领扣(LeetCode)Fizz Buzz 个人题解
  4. MySQL 1364 错误提示:#1364 - Field "details" doesn't have a default value
  5. 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)
  6. Mac安装和卸载Mysql
  7. Java Import的使用
  8. 工作常用4种Java线程锁的特点,性能比较、使用场景
  9. python3基础之 字符串切片
  10. ganglia 客户端部署