原文地址:https://www.cnblogs.com/SolarWings/p/6132310.html

很久很久以前,我一直有一个梦想,那就是做出一个自己的游戏,这个游戏很像模像样,除了拥有一个可以打开的exe文件,还要有一个很精致的安装界面,当你按照提示一步步执行完安装程序,一个XXX单机版就会出现在你的电脑上。也许是梦幻西游单机版,也许是DNF单机版,或者是跑跑卡丁车单机版呢?这个想法在我的脑海里维持过一段时间,最后由于学业的压力,以及当时什么都不懂,最终没有实现(全都是借口)。我最后只是做出了一个flash版本的小游戏,不需要安装,也没有复杂的操作,就是几个按钮点来点去的切换界面,当时居然会很有成就感,哈哈哈哈。

闲话扯了半天,开始回归正题,由于网上的教程要么是VS2010要么就是描述太复杂,我决定搞一个VS2013打包安装包的傻瓜式流程记录,方便大家直接上手,最基本的打包是可以分分钟搞定的:

1.新建一个安装包工程

FILE->New->Project

2.新建之后会弹出一个网页,因为VS2010之后的版本是没有自带打包功能的,要使用InstallShield Limited Edition需要下载对应的支持文件

3.在下载页面填写基本的信息

其中这两项,直接用电信网络竟然没有下拉框。在公司的FQ环境下才可以

然后就会转到一个下载和序列号界面,这个序列号要记下来,待会会用到。可以看到2010-2015都是可以用的

4.然后按照提示信息安装完成,重启VS后再新建一个工程

 

  

5.直接进入向导

设置基本信息

添加需要打包的文件

设置开始菜单显示的exe和是否创建桌面图标等

左边的框里面只留下启动的exe就行了,不然开始菜单里会有一坨

注册表那里暂时不需要,我就不设置了

6.打包方式的设置

设置为全部资源都打包到exe文件

7.打包的模式换成singleimage

8.接下来只要生成解决方案就可以了,在工程目录下会生成setup.exe

9.进阶版:怎么在安装结束后执行自己的处理程序

我这里为了方便,直接用了一个控制台程序去调用cmd的命令

我们新建一个控制台程序

选择空项目->完成。

然后源文件->添加->新项目 新建一个cpp文件

把需要的代码撸进去,一般就是执行几个命令

#include <windows.h>
#include <direct.h>
#include <stdio.h>
#include <string>
using namespace std; int main(int argc, char *argv[])
{
system("echo hehe");
return 0;
}

然后把我们的这个控制台程序设置到刚才的文件输出目录里面去

设置调用时机,在对应的时机下面右键,新建exe

位置设置为本工程,然后在FileName项中找到我们刚才设置好的主输出

这样整个流程就完成了,当安装包安装完成时,就会调用你的命令行程序了

【转】如何使用visual studio将你的程序打包成安装包的更多相关文章

  1. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  2. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer

    Advanced Installer :Free for 30 days. All features. 下载地址:https://www.advancedinstaller.com/download. ...

  3. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结

    最近有对一个Windows应用程序少许维护和修改.修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下. Visual Studio版本:Visual St ...

  4. Visual Studio 2015 WinForm应用程序打包教程

    最近开发了一个小软件.由于需要打包.网上找了一些资料.然后整合了起来.希望对大家有所帮助.不全面请见谅. 本人开发工具用的是Visual Studio 2015  打包控件 InstallShield ...

  5. 【转载】Visual Studio中WinForm窗体程序如何切换.NET Framework版本

    在C#语言的WinForm窗体程序中,有时候我们需要切换WinForm窗体程序项目的.NET Framework版本号,例如从.NET Framework 4.5版本切换到.NET Framework ...

  6. 运行OpenGL红宝书第9版源码时Visual Studio提示“无法启动程序...ALL_BUILD。拒绝访问“的问题的解决办法

    问题描述: OpenGL红宝书第9版源码采用CMake编译后,用相应的Visual Studio(如VS2012)打开“vermilion9.sln”解决方案,并运行时Visual Studio提示“ ...

  7. Rust初步(二):使用Visual Studio Code编写Rust程序(猜猜看游戏)

    我是照着下面这篇帮助文档,完成了第一个完整的Rust程序: 猜猜看 游戏 http://kaisery.gitbooks.io/rust-book-chinese/content/content/3. ...

  8. 使用Visual Studio 2015开发Android 程序

    环境配置: 操作系统:win 7 64位 IDE:Visual Studio 2015 SDK:installer_r24.3.3-windows 安装前提: 编辑hosts文件(在附件可下载)因为安 ...

  9. 1.2 如何在visual studio 中建立C#程序

    这一节简单介绍一下怎么在visual studio 2015中建立第一个C#程序,我使用的是2015版的visual studio,不同版本可能有一些差异,不过大体上是相同的,这些信息仅供新手参考,大 ...

随机推荐

  1. Checkstyle-Configuration

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-/ ...

  2. 【Python】Windows平台下Python、Pydev连接Mysql数据库

    Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...

  3. matlab入门笔记(二):矩阵和数组

    摘自<matlab从入门到精通>胡晓东 matlab最基本的数据结构就是矩阵,一个二维的.长方形形状的数据,可以用易于使用的矩阵形式来存储,这些数据可以是数字,字符.逻辑状态,甚至是mat ...

  4. Android应用的自动更新模块

    软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...

  5. 关于使用CTE(公用表表达式)的递归查询

    --关于使用CTE(公用表表达式)的递归查询 --CTE 的基本语法结构如下: WITH expression_name [ ( column_name [,...n] ) ] AS ( CTE_qu ...

  6. 解决ssh连接慢(有时候等半分钟才出现密码输入提示)的方法

    经常通过ssh 或者 scp 连接一堆远程主机,同样是 Linux 主机,其中一些创建 ssh 连接速度特别慢,连接建立之后执行操作速度却很正常,看来应该不是网络原因.解决的方法是通过ssh 的-v参 ...

  7. python sort和sorted函数

    sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 ...

  8. macbook安装homebrew并更换清华源

    1.官网brew.sh复制安装脚本. 2.自动安装完成后,更换为清华源来加快速度.网址为:https://mirrors.tuna.tsinghua.edu.cn/help/homebrew 3.更换 ...

  9. mybatis 多数据源

    <environments default="development"> <environment id="development"> ...

  10. c#中lock的使用(用于预约超出限额的流程)

    一个项目,预约系统,核心二张表:预约表,预约限额表 用户点击预约按钮后, 1. 先select 预约限额表把该预约时间段的限额取出来, 2. 再select 预约表把该预约时间已经预约上的次数算出来 ...