最近对软件安装包制作研究了一下,下面记录了一种比较简单,不用写代码的方法。

1、New Project---->Other Project Types ---->Visual Studio Installer---->Setup Project

命名为:Install

  这时在VS2010的File System栏里中将有三个文件夹,

  1.“Application Folder”表示要安装的应用程序需要添加的文件;

  2.“User's Programs Menu”表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件夹来存放:应用程序.exe和卸载程序.exe;

  3.“User's Desktop”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。

2、应用程序文件夹中点右键添加文件:表示添加要打包的文件;

添加的文件一般是程序在安装后释放在硬盘里的文件,即为程序执行所需要的文件(包括可执行文件、文件夹数据等)。

把需要创建程序快捷方式的图标也添加进来:后缀名为:ico

3、在创建的项目名称(Install)上点击右键:属性

选择系统必备/Prerequisites,然后选择.NET的版本,和Windows Installer3.1(可选项) ,我这里根据项目需求还选则了visual c++ 2010 runtime libraries(x86).

选择:“Download prerequisites from the same location as my application”这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;但是安装包会比较大。

VS2010发布.NET4.0的版本,在创建安装程序时,需要设置启动条件:在项目名称(setup1)上,点击右键选择“视图”---->“启动条件”:

然后VS2010会创建如下文件:

在“启动条件”中, 点击“.NET Framework”在Version上面选择 .NET Framework 4 Client Profile;

4、设置安装文件的目录(路径):创建的项目名称(Install)点击左键(不是右键),在属性中设置参数如下图:

其中Author 为作者;Manufacturer为公司名称;ProductName为应用程序的名字;

把InstallAllUsers 设置为True 。(这样在“控制面板”程序中会显示公司的名称;在安装时会默认为“任何人”,否则默认为“只有我”)

在应用程序上点击左键,如下图:第一个为系统主目录(默认C:\Programe),第二个为公司名([Manufacturer]),第三个为应用程序名称,这样在安装时就会创建两层的文件路径。

需要删除DefaultLocation中的:[Manufacturer] 。删除后只有应用程序的名称。

5、创建应用程序图标与卸载程序:

  A.在“Application Folder”中的.exe文件中,点击右键,创建快捷方式: 

   重命名,然后点击右键属性:选择Icon。确定后,拖动此快捷方式到“User's Desktop”。

  B. “User's Programs Menu”中添加一个文件夹,命名为:软件的名称,然后同样的方式创建启动文件.exe一个快捷方式,拖动到“User's Programs Menu”刚才建的文件中;

   然后给.NET应用程序创建一个卸载程序:

                    在“Application Folder”中添加:C:\Windows\System32\Msiexec.exe

     右键创建快捷方式,重命名为:Uninstall,把此快捷方式拖动到刚才建的文件中;

     点击项目名称(Install),在属性中找到:ProductCode

  复制此ProductCode ,粘贴到“Uninstall”快捷方式的Arguments属性,前面加/x空格

6、完成以上步骤,就可以生成解决方案了。

7、生成解决方案后,在Release文件夹中就是我们需要的安装包。

 下面我们需要解决一个常见问题:
若用户使用我们软件需要安装其他程序或配置文件,即.exe文件,所以我们想让安装程序在执行完成时执行或安装一个指定的程序。
首先打开Custom Actions
然后在自定义操作编辑器中选择“Install”节点。右键选择“Add Custom Action”接着在“Select Item in Project”对话框中,双击“Application Folder”。  
选择要执行的程序,然后单击“确定”关闭对话框。 
单击该文件,在“属性”窗口中,选择 CustomActionData 属性并键入参数。
再次编译,生成setup.exe。
 
[参考文献]

VS2010安装包制作的更多相关文章

  1. VS2010安装包制作全过程图解

    项目的第一个版本出来了,要做个安装包,很久没做过已经有些淡忘了,网上差了差资料,写了一个,总结下,可能还不是很完善,仅作参考. 1.首先在打开 VS2010    >新建>项目 2.创建一 ...

  2. 使用Setup Factory安装包制作工具制作安装包

    在我们开发完软件后,除了极个别案例我们把整个目录复制给客户用外,我们一般都需要做成安装包,方便整个软件的部署操作,以安装包的部署操作可能简单的是复制文件,也可能包括一些注册表.数据库等额外的操作,不过 ...

  3. 基于InstallShield2013LimitedEdition的安装包制作

    在VS2012之前,我们做安装包一般都是使用VS自带的安装包制作工具来创建安装包的,VS2012.VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,虽然思路差不 ...

  4. vs2017 rc 离线安装包制作

    vs2017 rc 离线安装包制作 1.下载在线安装包:https://aka.ms/vs/15/release/vs_Enterprise.exe 2.制作离线安装包: vs_Enterprise. ...

  5. Mac OS平台下应用程序安装包制作工具Packages的使用介绍

    一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...

  6. 安装包制作工具 SetupFactory使用1 详解

    2014-11-19 Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows ...

  7. Windows安装包制作指南——Advanced Installer的使用

    1. 前言 最近需要制作windows的安装包,据说Advanced Installer比较强大,遂拿它来制作安装包.在网上少量资料以及官网简约文档中摸索前进,总算是制作出可用的安装包,在此记录,仅供 ...

  8. WinFrom 安装包制作

    1.添加安装向导项目打开文件系统界面,选择应用程序文件夹.在右侧右击->添加->文件,把程序需要的文件都添加进来. 2.右击程序集->创建快捷方式.右击快捷方式->属性窗口-& ...

  9. [程序安装包制作] Advanced Installer 备忘

    原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...

随机推荐

  1. Javacript实现倒计时

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

  2. 实际遭遇GC回收造成的Web服务器CPU跑高

    今天下午有段时间访问园子感觉不如以前那么快的流畅,上Web服务器一看,果然,负载均衡中的1台云服务器CPU跑高. 上图中红色曲线表示的是CPU占用率.正常情况下,CPU占用率一般在40%以下. 这台云 ...

  3. loadrunner破解出现“license security violation,Operation is not allowed”的错误提示

    1.关闭loadrunner,将破解文件(“lm70.dll”.“mlr5lprg.dll”)放置在LoadRunner\bin下面 2.以管理员身份运行loadrunner,在CONFUGURATI ...

  4. jvm可视化工具jvisualvm插件——Visual GC

    转自:http://blog.csdn.net/xuelinmei_happy/article/details/51090115 Visual GC是一个Java 内存使用分析与GC收集的可视化工具插 ...

  5. ctags+cscope替换sourceinsight

    背景 windows环境开发+linux交叉编译的开发模式,代码阅读和编写都用的source-insight. 除了检索,跳转,工程构建等方面,sourceinsight自带了一些宏语言,可以轻松实现 ...

  6. 事件Qevent的接受和忽略 和重定义 事件过滤器(转)

    转载来源:http://blog.csdn.net/seanyxie/article/details/5821970 事件处理流程:某个事件发生------>exec()循环会接收到这个事件-- ...

  7. Leetcode 662.二叉树最大宽度

    二叉树最大宽度 给定一个二叉树,编写一个函数来获取这个树的最大宽度.树的宽度是所有层中的最大宽度.这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空. 每一层的宽度被定义 ...

  8. Linux网卡驱动程序对ethtool的支持和实现

    Linux 的一个显著特点就是其强大的网络功能,Linux 几乎支持所有的网络协议,并在这些协议基础上提供了丰富的应用.对 Linux 网络管理的重要性不言而喻,这些管理依赖于网络工具,比如最常用的 ...

  9. POJ 2983-Is the Information Reliable

    Description The galaxy war between the Empire Draco and the Commonwealth of Zibu broke out 3 years a ...

  10. [洛谷P2801]教主的魔法

    题目大意:有$n$个数,$q$个操作.两种操作: $M\;l\;r\;w:$把$[l,r]$所有数加上$w$ $A\;l\;r\;c:$查询$[l,r]$内大于等于$c$的元素的个数. 题解:分块,对 ...