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

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. PJMEDIA之录音器的使用(capture sound to avi file)

    为了熟悉pjmedia的相关函数以及使用方法,这里练习了官网上的一个录音器的例子. 核心函数: pj_status_t pjmedia_wav_writer_port_create ( pj_pool ...

  2. 剑指Offer - 九度1388 - 跳台阶

    剑指Offer - 九度1388 - 跳台阶2013-11-24 03:43 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 输入: 输入可能包 ...

  3. 《Cracking the Coding Interview》——第8章:面向对象设计——题目1

    2014-04-23 17:32 题目:请设计一个数据结构来模拟一副牌,你要如何用这副牌玩21点呢? 解法:说实话,扑克牌的花样在于各种花色.顺子.连对.三带一.炸弹等等,如果能设计一个数据结构,让判 ...

  4. bat批处理 批量导出多个APK的AAPT信息(含python实现)

    产品APP因架构调整,将一个APK拆分成了十几个APK,这样每次打ROM前,都要一个个核对APK的AAPT信息 一个个APK去敲命令很繁琐,想到可以用BAT批处理调用AAPT命令一次将十几个APK的A ...

  5. Docker私有仓库Harbor部署与使用

    一.harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 由下面几个组件组成: proxy:nginx前端代理,主要是分发前端页面ui访问和镜像上传和下载 ...

  6. corosync.conf

    ##totem定义集群内各节点间是如何通信的,totem本是一种协议,专用于corosync专用于各节点间的协议,协议是有版本的 totem { ##版本号 version: ##安全认证on|off ...

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

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

  8. cinatra--一个高效易用的c++ http框架

    cinatra是一个高性能易用的http框架,它是用modern c++(c++17)开发的,它的目标是提供一个快速开发的c++ http框架.它的主要特点如下: 统一而简单的接口 header-on ...

  9. 201621123034 《Java程序设计》第6周学习总结

    作业06-接口.内部类 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多 ...

  10. hdu2010(dfs+剪枝)

    Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...