一、前言

由于公司要求项目需要走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文件里

五、结束

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

VS编译命令的更多相关文章

  1. Android 编译命令 make j8 2>&1 | tee build.log 解释

    在编译Android的时候,经常看到这样的命令 make  -j8 2>&1 | tee build.log  其中 make 是编译命令, -j8 这里的 8 指的是线程数量,就是你要 ...

  2. 预编译命令 #if DEBUG

    在控制台程序根据预编译命令: http://www.askapache.com/windows/advanced-batch-scripting.html namespace SXGYCarTrans ...

  3. android的m、mm、mmm编译命令

    android的m.mm.mmm编译命令的使用 android源码目录下的build/envsetup.sh文件,描述编译的命令 - m:       Makes from the top of th ...

  4. 【Android】MTK Android 编译命令

    命令格式:./maketek [option] [project] [action] [modules] Option: -t ,-tee :输出log信息到当前终端 -o , -opt=-- : 编 ...

  5. mtk Android 编译命令自定义--添加版本号

    1. alps\build\core\Makefile文件:(参照CUSTOM_BUILD_VERNO) ifeq "" "$(SURPLUS_BUILD_VERNO)& ...

  6. MTK Android 编译命令

    一.Target 编译命令 usage: (makeMtk|mk) [options] project actions [moudles] options:       -t,-tcc         ...

  7. Mtk Android编译命令

    一.输入命令: cbk@YCS:~/work/k6/alps$ ./mk help Usage: (makeMtk|mk) [options] project actions [modules] Op ...

  8. GCC 编译命令

    今天突然被同事问道一个GCC编译命令为的问题,感觉对相应内容生疏了,赶紧整理下相关内容,梳理下相关知识. GCC命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再 ...

  9. 【转】Android源代码编译命令m/mm/mmm/make分析--不错

    原文网址:http://blog.csdn.net/luoshengyang/article/details/19023609 在前文中,我们分析了Android编译环境的初始化过程.Android编 ...

  10. android下m、mm、mmm编译命令的使用

    android下m.mm.mmm编译命令的使用 通过查看android源码目录下的build/envsetup.sh文件,可知: - m:       Makes from the top of th ...

随机推荐

  1. java编程思想第四版第九章习题

    第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void pr ...

  2. hdu 1874 畅通工程续 (floyd)

    畅通工程续Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. nyoj 96-n-1位数 (strlen, atoi, ceil)

    96-n-1位数 内存限制:64MB 时间限制:3000ms 特判: No 通过数:30 提交数:47 难度:1 题目描述: 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2) ...

  4. Cesium小插件改造--clock和timeline

    一.Clock 废话不多说,先上效果图再说.如效果图所示:clock的日期显示为YY/MM/DD这种简洁明了格式,时间则为当前系统时间(也就是北京时间).Clock内部以儒略日(JulianDate) ...

  5. IBM-X3850-4U诊断面板信息

    IBM X3850 4U 指示灯 描述 OVERSPEC 没有足够的电量为系统供电.NONRED和LOG指示灯可能也点亮 PS 一个电源故障或者被电源未插 LINK 保留 CPU CPU出现故障.丢失 ...

  6. Bootstrap3中的affix的使用Demo

    <div class="container"> <div class="col-md-3"> <ul class="li ...

  7. 读写分离很难吗?springboot结合aop简单就实现了

    目录 前言 环境部署 开始项目 注意 參考: 前言 入职新公司到现在也有一个月了,完成了手头的工作,前几天终于有时间研究下公司旧项目的代码.在研究代码的过程中,发现项目里用到了Spring Aop来实 ...

  8. 在Windows Server 2019通过Docker Compose部署Asp.Net Core

    一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...

  9. 2019-9-9:渗透测试,基础学习,windows基础命令,笔记

    windows系统基础命令学习 1,命令提示符界面进入方法 方法一: 某分区按住shift,右键单击选择在此处打开windows powershell,进入之后输入cmd 方法二:标题栏输入 方法三: ...

  10. Fabric1.4源码解析:Peer节点启动过程

    看一下Peer节点的启动过程,通常在Fabric网络中,Peer节点的启动方式有两种,通过Docker容器启动,或者是通过执行命令直接启动. 一般情况下,我们都是执行docker-compose -f ...