VS 制作安装包小窥
难得忙里偷闲,看到有关VS制作安装包,按下文小试一把,还行,比不上Installshield。
首先在打开 VS2010 》 文件 》新建项目

创建一个安装项目 XXX
在“目标计算机上的文件系统”下我们看见 应用程序文件夹,用户程序菜单 ,用户桌面 , 在 应用程序文件夹 右击添加文件夹(即安装后所在安装路径下生成的包含程序相关组件的文件夹)
本列中添加了 测试安装程序文件夹 ,在 测试安装程序文件夹 上右击 ,选择 添加,根据项目需要 ,将所有程序所需要的组件都添加进去,本例中 将XXX.exe ,XXX.dll ,图标等文件添加
要实现卸载功能的话,需要将 C:\Windows\System32\msiexec.exe 程序也添加到 测试安装程序文件夹 中,然后在进一步操作
接下来,分别给主程序 XXX.exe 和 msiexec.exe 建快捷方式
同理在 用户程序菜单 中添加一个文件夹 ,并将 XXX.exe 和 msiexec.exe 的快捷方式 剪切到 该文件夹下,这样在用户点击 开始 菜单 后 就会看见我们安装程序的文件,提供了运行程序的快捷方式和卸载该程序的快捷方式。

接下来设置卸载程序的参数 :在 解决方案下 ,单击该安装项目名称 ,进入其 属性 页面 ,找到其 ProductCode 的属性值,将属性值复制下,本例中该属性值为:{226D41BC-A197-41B0-9156-2EC489089D99} (即本安装软件的ID)

然后在 卸载程序所建的快捷方式 的属性页上 的 Arguments 属性项 ,将其值赋值为 :/x{226D41BC-A197-41B0-9156-2EC489089D99} ,/x 为命令 ,后面跟此安装的软件的ID ,这样,卸载程序才能知道运行时该卸载那个软件。

最后,在 用户桌面 添加 主程序的 快捷方式

最后我们还要设置一下相关属性,由于次软件是在.Net 下开发的,所以如果目标计算机上并没有安装相应的.Net 库文件,则安装后程序仍然无法运行,因此,需要设置此安装程序的属性,选中此安装程序,右击 ,进入 属性 页面。

单击 系统必备

程序会自动识别所需要的.Net库文件和安装程序,默认即可,在 指定系统必备组件的安装位置 选项,第一项的意思是,在安装时,若目标计算机没有.Net库文件的话,安装程序将提示用户从网上下载相应的.Net库文件。第二项的意思是 ,直接从本地计算机上将相应的.Net库文件拷贝到 此安装程序的 Debug 目录下,在目标计算机安装时,若安装程序检测到计算机未安装.Net库文件,则先安装.Net库文件,再安装该软件,无需下载.Net库文件。 因此我的程序中选择第二项,单击 确定。

最后 生成该安装包, 在Debug 目录下 找到 setup.exe 文件即是我们的安装包。
最基本的安装程序就是这些,如果复杂的大型应用可能涉及到 注册表及启动条件,安装引导界面等属性的设置,我们在 安装程序 右击 选择 视图 ,可以在里面进行相关设置。
使用Installshield时,遇到过文件无权限修改,VS也是存在,按照下文处理:
问题:在本地计算机上可以实现对应用程序的初始化配置,但在裸机上安装程序后,无法进行初始化配置,程序报错:对路径“×××”访问拒绝 ;一查,是权限问题,在逻辑上一
普通用户的身份,运行程序是无法获取操作配置文件的权限。在网上搜了下解决方法,如下:
首先打开 项目的属性页 进入 “ 安全性 ” 一栏 ,勾选 “启用ClickOnce安全设置”

接下来会发现在 解决方案中的 Properties 中发现 app.manifest 文件,

双击 打开 该文件
然后 再将 “启用ClickOnce安全设置” 取消勾选 ,重新编译 程序即可,经过修改后的程序,在安装后运行是以管理员身份运行,就不存在 拒绝访问的问题了。
VS 制作安装包小窥的更多相关文章
- 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程
一开始让我做安装包的时候,其实我是拒绝的.因为我根本就不会做安装包.查了资料之后,我很懵,很晕,很乱,因为不清晰,不简明,不直白.然而经过一番彷徨的挣扎,我终于发现:制作安装包,谁人都可以!故挥狼毫, ...
- 使用Qt installer framework制作安装包
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
- 【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)
VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观:如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法. ...
- vs2015 制作安装包额外需要安装的软件VSI_bundle
vs2015 制作安装包额外需要安装的软件VSI_bundle 下载地址:http://files.cnblogs.com/files/sdner/VSI_bundle.rar
- Wix制作安装包
Wix制作安装包,找起资料来很费劲,记录一下: Product.wxs,该文件只能制作出msi形式的安装包,不能做到自动检测framework. <?xml version="1.0& ...
- [转载]如何用Visual Studio制作安装包
原文地址:如何用Visual Studio制作安装包作者:蓝羽幽游 环境:Microsoft Visual Studio 2010 语言:C# 构架:.NET Framework 2.0 解决方案名称 ...
- VS vs2012制作安装包
VS vs2012制作安装包 一.参考地址: http://www.3fwork.com/b100/000196MYM014103/
- 为自己编写的windows应用程序制作安装包
1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...
- 使用Qt installer framework制作安装包(不知道是否适合Mac和Linux?)
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
随机推荐
- 通用数据挖掘[ZZ]
一.什么是数据挖掘?许多人认为数据挖掘更像是一门哲学,或数学的组成部分,而不是业务需求的实际解决方案.您可以从采用的各种定义中看出这一点,例如:“数据挖掘是对非常大型的数据进行的研究和分析,采用自动或 ...
- servlet的doPost 和doGet和web文件结构
doPost和doGet分别由 tomcat自己来决定调用post 还是get 方式查询 get:url有少量的参数信息,一般用到查询那里 (像百度.. post一般用来提交大文件数据(二进制数据 d ...
- Ubuntu Apache 伪静态配置 url重写 步骤
1.加载rewrite模块sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.l ...
- [转]jQuery,javascript获得网页的高度和宽度
网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWi ...
- java.math.BigDecimal类
BigDecimal类用于高精度计算.一般的float型和Double型数据只可以用来做科学计算或者是工程计算,由于在商业计算中,要求的数字精度比较高,所以要用到java.math.BigDecima ...
- python模块之socket
43.python模块之socket: Python在网络通讯方面功能强大,学习一下Socket通讯的基本方式 UDP通讯: Server: import socket port=8081 ...
- CentOS 6.3 卷组挂载硬盘教程 linux的VPS如何分区
XEN架构VPS提供的容量一般都不会低于10G,但大部分基于Xensystem面板的VPS默认挂载10G硬盘(第一磁盘),剩下的容量(第二磁盘)就需要通过手动挂载才能扩充默认的10G容量了.默认装完系 ...
- java 知识结构
JAVA基础阶段 阶段 技术名称 技术内容 T线 JavaSE JAVA 开发基础知识 | Eclipse 开发环境 | JavaSE 7.0 API | JavaSE 8.0新特性 | 多线程技术 ...
- 关于 self 和 super 在oc 中 的疑惑 与 分析
关于 self 和 super 在oc 中 的疑惑 与 分析 面试一定都是很注重 基础的,不管高级还是初级. 虽然基础好跟基础不好都可以写 代码,网上那么多资料. 区分高低也就是研究的深度和广度 ...
- unity3d中脚本生命周期(MonoBehaviour lifecycle)
最近在做一个小示例,发现类继承于MonoBehaviour的类,有很多个方法,于是乎必然要问出一个问题:这么多个方法,执行先后顺序是如何的呢?内部是如何进行管理的呢?于是在网上找了许多资料,发现了Ri ...