文档章节

c# 自动化构建

朝天放歌
 朝天放歌
发布于 2016/07/25 17:08
字数 741
阅读 54
收藏 1

经常修改软件与发布程序,每次都要一层一层的点击到对应的bin目录压缩文件,拷贝程序,烦不胜烦。虽说vs有打开对应资源管理器功能,不过每次不是还有打开vs不是。打开vs等的人着急。 于是想想还是用批处理方式,简单方便。于是比葫芦画瓢,参照了网上很多博客文章,简单的弄了个c#程序软件的自动化构建与发布的批处理命令。系统对大家有点小用。

主要知识点导读:批处理命令,7zip命令,MSBuild基础


批处理

主要有日期操作,choice方法,变量命名。

7zip命令

主要为 a参数,-x参数简单使用

MSBuild

这个就更没有啥说的,我就用了一句话,构建工程或构建解决方案

由于网上有很多精讲知识点的文章,我就不献丑了,大家自行google把。
废话少说上代码:

>    [@echo](http://my.oschina.net/echolee1987) off  

    echo --------------------------------------------------------------------------------
    echo ***
    echo *** 运行此程序,请确保本机已安装 【7zip】压缩软件    author:zhaohao
    echo ***
    echo --------------------------------------------------------------------------------
    echo -- 当前日期时间:%date:~0,4%-%date:~5,2%-%date:~8,2%,%time:~0,2%-%time:~3,2%-%time:~6,2% 
    echo --------------------------------------------------------------------------------

    rem 当前操作系统 安装vs2013 的vc编译器路径
    set vcbuild="D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
    rem 发布平台
    set target_platform=x86
    set release_type=Debug


    rem 打包文件 相对于当前批处理文件的 存储路径
    set save_path=%~dp0publish\%date:~0,4%%date:~5,2%%date:~8,2%.%time:~0,2%%time:~3,2%
    rem 打包文件命名中的日期格式
    set dt_str=%date:~0,4%%date:~5,2%%date:~8,2%


    rem  选项1 文件名
    set  sel1_str=软件名称
    rem  选项1 工程发布目录
    set  sel1_proj_release="工程文件目录\bin\Debug"
    rem  选项1 工程文件名
    set  sel1_proj_file="工程文件目录\工程文件名.csproj"

  

    goto options

    :options
    echo --------------------------------------------------------------------------------
    echo 进入软件打包批处理程序...
    echo 1 打包 %sel1_str%
    echo 2 构建并打包 %sel1_str%
    echo 0 退出
    echo --------------------------------------------------------------------------------

    choice /c:120 /M "请选择要打包的程序:"  
    rem /T 20 /D 0
    if errorlevel 3 goto end  
    if errorlevel 2 goto select2
    if errorlevel 1 goto select1


    :select1
    echo --------------------------------------------------------------------------------
    echo 开始打包 %sel1_str%...
    echo --------------------------------------------------------------------------------
    cd d:
    cd %sel1_proj_release%
    rem "c:\Program Files\7-Zip\7z.exe"
    rem 要打包的文件
    7z a "%save_path%\%sel1_str%%dt_str%.zip"   *.dll *.xml *.exe *.exe.config *.lib *install.bat *.doc *.dat update.*  -x!*.vshost.*
    echo --------------------------------------------------------------------------------
    echo 工作已完成!Well Work ,Enjoy it!
    echo --------------------------------------------------------------------------------
    goto options


    :select2
    call %vcbuild% %target_platform%
    MSBuild %sel1_proj_file%  /t:Rebuild  /P:WarningLevel=2;Configuration=%release_type%
    echo --------------------------------------------------------------------------------
    echo  %sel1_str% 构建已完成!
    echo --------------------------------------------------------------------------------
    goto select1


    :end
    echo --------------------------------------------------------------------------------
    echo 点击任意键,退出应用程序。
    echo --------------------------------------------------------------------------------
    pause

话说我的markdown里面 @echo off 为毛不在命令行中显示?系统还自动加了个连接 ??

© 著作权归作者所有

朝天放歌
粉丝 2
博文 18
码字总数 4175
作品 0
合肥
程序员
私信 提问
C# 最佳工具集合: IDE 、分析、自动化工具等

原文出处:Sweet-Tang C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言。如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理...

Sweet-Tang
2017/09/11
0
0
一位跨平台开发者的自白

Andreia Gaita 在 OSCON 开源大会上发表了一个题为跨平台开发者的自白的演讲。她长期从事于开源工作,并且为 Mono 工程(LCTT 译注:一个致力于开创 .NET 在 Linux 上使用的开源工程)做着贡...

局长
2016/09/05
6.4K
17
如果让我完善几年前的一个项目,我会做哪些改进?

在08年的时候,我还没有大学毕业,当时在一家公司实习。那时候老板接了一个项目,是一个给中石油某下属公司做的一个web版本的管理系统,我和一个同学硬着头皮接下来做完了。这个系统后端用的...

无敌西瓜
2014/02/17
0
0
CMake 3.8.0 发布,自动化构建系统

CMake 3.8.0 发布了,CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 proj...

达尔文
2017/04/11
1K
6
自动化测试知识分享

【浅谈自动化的本质】   自动化测试实际就是用程序测试程序。主要还是解决了手工测试的人工维护时间,有效提高了测试效率。 【自动化测试的知识点】   1.了解Javascript, CSS的知识;  ...

白一客
2017/04/10
315
1

没有更多内容

加载失败,请刷新页面

加载更多

关于运维,该怎么决定它的方向,这个似工作又似兴趣的存在

我之前主要从事网络、桌面、机房管理等相关工作,这些工作使我迷惘,这应该是大多数运维人都经历过的过程; 18年国庆,我从国内前三的消费金融公司裸辞,下海创业,就是想要摆脱这样的困境。...

网络小虾米
21分钟前
5
0
Java Timer的用法

Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("11232"); } }, 200000 , 1000); public void schedule(TimerTask task, long delay......

林词
25分钟前
4
0
使用js动态加载外部js文件以及动态创建script脚本

动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该DOM动态添加的脚本。和操作HTML元素一样,创建动态脚本也有两种方式:插入外部文件和直接插入JavaScript代码。 动态加载外的外...

Bing309
32分钟前
3
0
从零开始入门 K8s | Kubernetes 网络概念及策略控制

作者 | 阿里巴巴高级技术专家 叶磊 一、Kubernetes 基本网络模型 本文来介绍一下 Kubernetes 对网络模型的一些想法。大家知道 Kubernetes 对于网络具体实现方案,没有什么限制,也没有给出特...

阿里巴巴云原生
36分钟前
3
0
天气获取

本文转载于:专业的前端网站➨天气获取 $.get("http://wthrcdn.etouch.cn/WeatherApi", { citykey: cityCode }, function (d) { //创建文档对象 var parser = new ......

前端老手
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部