原文地址: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. sqlyog v12.09 注册码

    1.小巧的自动完成.2.HTTP/HTTPS和SSH通道.3.向导化的汇入工具包.4.结构化的同步,可以设定任务计划,按照特定的时间进行同步作业,并对同步数据进行校验.5.工作管理器.计划备份.以及通 ...

  2. 【C语言】字符串与整型数值之间的转换

    一.将字符串转化为对应的数值 /*============================================================================= # # F ...

  3. 【转】对 Rust 语言的分析

    对 Rust 语言的分析 Rust 是一门最近比较热的语言,有很多人问过我对 Rust 的看法.由于我本人是一个语言专家,实现过几乎所有的语言特性,所以我不认为任何一种语言是新的.任何“新语言”对我来 ...

  4. c2java select algorithm

    对于非常多应用来说,随机算法是最简单的或者最快的.既简单又快的有没有呢? 那须要深刻的洞察力或者革命性的突破. 什么是随机算法 随机算法与确定算法差别是:它还接收输入随机比特流来做随机决策. 对于同一 ...

  5. linux中chkconfig 启动程序顺序介绍

    1)redhat的启动方式和执行次序是: 加载内核 执行init程序 /etc/rc.d/rc.sysinit          # 由init执行的第一个脚本 /etc/rc.d/rc $RUNLE ...

  6. Android通讯录管理(获取联系人、通话记录、短信消息)

    前言:前阵子主要是记录了如何对联系人的一些操作,比如搜索,全选.反选和删除等在实际开发中可能需要实现的功能,本篇博客是小巫从一个别人开源的一个项目抽取出来的部分内容,把它给简化出来,可以让需要的朋友清 ...

  7. python 视频 图像帧提取

    import cv2 vidcap = cv2.VideoCapture('005.avi') success,image = vidcap.read() count = 0 success = Tr ...

  8. cnetos7最小化安装ifconfig命令找不到怎么办

    我们在安装完centos7最小化系统安装完成后,执行ifconfig命令会报命令未找到.实际上在centos7上,使用“ip addr”和“ip link”命令来查找网卡详情.ifconfig命令已经 ...

  9. 一个里表世界切换的shader效果

    之前GGJ实现了一个,但是实现方式上有很多冗余.今天正好在做一个类似的东西,重新做了一个版本 还是当时美术画的素材: 由于里表世界是不同的内容,是两张材质.所以拆分成不同Layer之后,里世界单独渲染 ...

  10. iOS求职之C语言面试题

    1.static有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.
 2)  ...