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

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. laravel5.5任务调度

    目录 1. 定义调度 1.1 使用Closure 1.2 Artisan 命令调度 1.3 队列任务调度 1.4 Shell 命令调度 1.5 调度频率设置 1.6 闭包测试限制 1.7 避免任务重复 ...

  2. 孤荷凌寒自学python第四天 安装python的其它IDE环境

    孤荷凌寒自学python第四天 安装python的其它IDE环境 (完整学习过程屏幕记录视频地址在文末) 因为是完全的新手,对python环境搭建完全一无所知,因此,可真是大费周章才配置了其它多个Id ...

  3. 【LeetCode】Swap Nodes in Pairs(两两交换链表中的节点)

    这是LeetCode里的第24题. 题目要求: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 示例: 给定1->2->3->4, 你应该返回2->1->4- ...

  4. matlab使用摄像头人脸识别

    #关于matlab如何读取图片.视频.摄像头设备数据# 参见:http://blog.csdn.net/u010177286/article/details/45646173 但是,关于摄像头读取,上 ...

  5. android 继承ListView实现滑动删除功能.

    在一些用户体验较好的应用上,可以经常遇见   在ListView中  向左或向右滑动便可删除那一项列表. 具体实现  则是继承ListView实现特定功能即可. (1). 新建 delete_butt ...

  6. [洛谷P1792][国家集训队]种树

    题目大意:给出由$n$个数组成的环,取某个数就可以得到它的分数,相邻的两个数不能同时取.问取$m$个数可以得到的最大分数. 题解:建一个大根堆,贪心取,每个点记录前驱后继,取一个点就把前驱后继设成不能 ...

  7. APIO2017游记

    铁牌选手爆零滚粗记QAQ........ CCF说不让讨论APIO相关内容不过现在应该没事了吧QAQ day0:上午还在学校填清北夏令营的表,下午上火车去北京,晚上颓颓颓...... day1:上午网 ...

  8. 《c程序设计语言》读书笔记-4.12-递归整数转字符串

    #include <stdio.h> #include <math.h> #include <stdlib.h> void itoa_num(int n, char ...

  9. 2016华中农业大学预赛 E 想法题

    Problem E: Balance Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 205  Solved: 64[Submit][Status][We ...

  10. TestNG测试执行顺序

    1.preserve-order属性,之前一直认为preserve-order属性是控制配置方法的执行顺序的,其实不是,preserve-order主要是控制test下节点classes执行顺序的 例 ...