由于项目需要,需要将一个绿色版软件(即无需在C盘写入文件)发给客户使用,要求是只有一个exe文件,双击即可执行。​

网上说WinRAR软件创建自解压文件可以实现,链接http://blog.csdn.net/harvic880925/article/details/27675073

该方法是手动版的,项目中常常需要以命令行的方式执行。我查了一下WinRAR自带的帮助,实现了该方式。

原理:将软件中的文件打包至一个exe文件,双击该exe,首先执行的是解压操作,将解压后的文件放到临时文件夹,然后自动执行临时文件夹中的exe文件。因为是放到了临时文件夹,给用户的感觉就是只有一个exe文件。​

实现:

1. 打开C:\Program Files(x86)\WinRAR文件夹,将其中的Default.SFX​、WinRAR.exe和Rar.exe复制到你的工程目录中;​​

2. 将你的绿色软件需要的文件放入soft文件夹下;​

3. 创建note.txt注释文件,编辑如下,含义分别为临时文件夹、静默模式、覆盖写入和启动后自动执行的文件:​

TempMode

Silent=1

Overwrite=1​

Setup=soft/soft.exe

4. 创建run.bat文件,编辑如下命令:​​

WinRAR.exe a soft.exe ./soft​​

rar.exe c -znote.txt soft.exe​

至此,双击soft.exe即可完成客户需求。命令行的方式还可以给生成的exe添加自解压图标,命令为-iicon,有兴趣的可以自行到WinRAR的中文帮助中查找和使用。​

缺点:​双击操作执行的是一个解压操作,大的软件解压是需要时间的,所以对于大软件来说,封装成一个exe文件可能意义不大。但是平时见到的一般也是小软件做成一个exe的形式。

VS使用WinRAR软件以命令行方式打包软件至一个exe的更多相关文章

  1. Jmeter命令行方式启动

    在性能测试过程中,我们常常遇到这样的问题,使用Jmeter的GUI界面进行大并发量的性能测试时,界面容易卡死,无法继续进行性能测试.通过使用命令行方式启动jmeter是一个不错的方式.下面就简单介绍一 ...

  2. 在非SQL客户端使用命令行方式定期连接SQL Server 服务器并模拟用户查询操作,同时输出信息内容

    一个很长的标题,实现的功能就是尽量使用非人力的方式模拟人去做一件事情,为了便于记录,将他们输出成文件方便查阅. 图形界面方式,使用微软自己的ConnMaker.exe,或者Microsoft 数据连接 ...

  3. Ubuntu下几个命令行方式使用的图片浏览工具

    想找几个Ubuntu下可以以命令行方式使用的图片浏览工具. Google了一些资料,找到下面几个web: 1.pho:轻巧的命令行图片查看器 其中介绍了工具pho,其功能特点,见下面的转帖内容: ph ...

  4. MongoDB导入bson文件(元数据),mongorestore命令行方式导入

    MongoDB导入bson文件(元数据),mongorestore命令行方式导入 不推荐使用MongoDB Compass等图形化数据库管理软件,例如MongoDB Compass只能导入json和c ...

  5. iOS:命令行方式使用OSChina托管私有代码

    一.介绍 在项目开发中,使用版本控制工具是必不可少的开发工具,它可以帮助我们程序员写完代码后及时提交备份,防止因个人操作导致代码被误删除了或者丢失了,安全可靠.同时,使用版本控制器工具也可以很方便的进 ...

  6. 个人软件过程5 git命令行方式超简洁教程

    虽然许多IDE对git的支持不错,但用命令行方式,有助于对git本身的理解.这里对实际工作中,使用git的流程,以及与其相关的命令 小结一下,基本上,掌握这些命令,就能自如的在工作中使用. 1.git ...

  7. JAVA基础学习之命令行方式、配置环境变量、进制的基本转换、排序法、JAVA文档生成等(1)

    1.命令行方式 dos命令行,常见的命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一级目录 cd/:退回到根目录 del:删除文 ...

  8. 批处理脚本命令行方式关闭Windows服务

    对于一些不常用的Windows Services,可以通过设置其启动类型为"禁用"而将其关闭.这种关闭方式是长期性的,电脑重启之后仍然起作用. 有时候希望在批处理脚本里通过命令行方 ...

  9. SoapUI命令行方式运行

    http://stackoverflow.com/questions/9220132/soapui-groovy-script-calls-to-command-line SoapUI支持用命令行方式 ...

随机推荐

  1. redis中使用redis-dump导出、导入、还原数据实例

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/109.html?1455861283 redis的备份和还原,借助了第三方 ...

  2. JavaScript练习之for循环语句

    for循环四要素:初始条件.循环条件.循环体.状态改变. 1.for(var a=i;i<=aa;i++) { 循环体(例sum=sum+i  sum是输出的) } 例题 1-20关没关一分 2 ...

  3. 爱上MVC~AuthorizeAttribute验证不通过如何停止当前上下文

    回到目录 我们知道mvc里有一些过滤器,AuthorizeAttribute用来做授权,一般在用户授权方面可以使用它,当使用没有登陆,我们直接跳到登陆页,这是没有问题的,可我要说的是,当用户对某个Ac ...

  4. js获取当前时间显示在页面上

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. 每天一个linux命令(36):diff 命令

    diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的 ...

  6. nodejs常用组件

    mssql 用途:连接SqlServer数据库 excel 用途:操作excel文档 nodegrass 用途:模拟用户进行get/post请求,下载文件等

  7. 动态单链表的传统存储方式和10种常见操作-C语言实现

    顺序线性表的优点:方便存取(随机的),特点是物理位置和逻辑为主都是连续的(相邻).但是也有不足,比如:前面的插入和删除算法,需要移动大量元素,浪费时间,那么链式线性表 (简称链表) 就能解决这个问题. ...

  8. Struts2整合Hibernate3实现用户登录功能

    所用技术:struts2 ,hibernate,jsp,mysql 本DEMO仅仅实现用户登录功能,采用MVC思想,自己也觉得相对是比较简单,比较容易理解数据流向的一个例子,通过整合这个过程,能够清晰 ...

  9. 【大数据】Linux下Storm(0.9版本以上)的环境配置和小Demo

    一.引言: 在storm发布到0.9.x以后,配置storm将会变得简单很多,也就是只需要配置zookeeper和storm即可,而不再需要配置zeromq和jzmq,由于网上面的storm配置绝大部 ...

  10. Windows Azure HandBook (1) IaaS相关技术

    <Windows Azure Platform 系列文章目录> 1.Microsoft Azure底层是否由System Center和Hyper-V构成? Microsoft Azure ...