难得忙里偷闲,看到有关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 制作安装包小窥的更多相关文章

  1. 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程

    一开始让我做安装包的时候,其实我是拒绝的.因为我根本就不会做安装包.查了资料之后,我很懵,很晕,很乱,因为不清晰,不简明,不直白.然而经过一番彷徨的挣扎,我终于发现:制作安装包,谁人都可以!故挥狼毫, ...

  2. 使用Qt installer framework制作安装包

    一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...

  3. 【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)

    VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观:如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法. ...

  4. vs2015 制作安装包额外需要安装的软件VSI_bundle

    vs2015 制作安装包额外需要安装的软件VSI_bundle 下载地址:http://files.cnblogs.com/files/sdner/VSI_bundle.rar

  5. Wix制作安装包

    Wix制作安装包,找起资料来很费劲,记录一下: Product.wxs,该文件只能制作出msi形式的安装包,不能做到自动检测framework. <?xml version="1.0& ...

  6. [转载]如何用Visual Studio制作安装包

    原文地址:如何用Visual Studio制作安装包作者:蓝羽幽游 环境:Microsoft Visual Studio 2010 语言:C# 构架:.NET Framework 2.0 解决方案名称 ...

  7. VS vs2012制作安装包

    VS  vs2012制作安装包 一.参考地址: http://www.3fwork.com/b100/000196MYM014103/

  8. 为自己编写的windows应用程序制作安装包

    1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...

  9. 使用Qt installer framework制作安装包(不知道是否适合Mac和Linux?)

    一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...

随机推荐

  1. JavaMail API 1.4.7邮件发送

    下载oracle javaMail API: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive- ...

  2. linux 部分命令简单使用介绍-ssh、scp、less、tail、find、grep(持续添加)

    ssh 加密的网络协议,提供客户-服务模式. 登录                        ssh username@ip                        ssh ip #不提供用 ...

  3. 基于jQuery 的图片瀑布流实现

    解题思路: 第1步  分析问题:我这边的处理方式是以列为单位.每次滚动条滚到底部,把需要加的新的内容放在高度最小的列.如下图所示 加载后的显示 如果在继续往下滚动.新图片就会在1下边显示,如此类推. ...

  4. Android单元测试初探——Instrumentation(转载)

    学习Android有一段时间了,虽然前段时间对软件测试有了一些了解,不过接触android的单元测试却是头一次.这几天在物流大赛上也用了不少时间,所以对于android的单元测试没有太深入的研究,所以 ...

  5. 已安装好的tengine编译添加未被安装的模块

    nginx -V 可以查看原来编译时都带了哪些参数 原来的参数: --prefix=/usr/local/tengine 需添加的参数: --with-http_stub_status_module ...

  6. C#窗体程序画倾斜一定角度的椭圆

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  7. 大神眼中的React Native--备用

    当我第一次尝试ReactNative的时候,我觉得这只是网页开发者涉足原生移动应用领域的歪门邪道. 我认为一个js开发者可以使用javascript来构建iPhone应用确实是一件很酷的事情,但是我很 ...

  8. 今天写了个从一张表数据插入到另一张表的oracle 语句

    create or replace procedure data_move(param in number) is cursor enterprise is select SENTERPRISEID, ...

  9. [BZOJ 1692] [Usaco2007 Dec] 队列变换 【后缀数组 + 贪心】

    ---恢复内容开始--- 题目链接:BZOJ - 1692 题目分析 首先,有个比较简单的贪心思路:如果当前剩余字符串的两端字母不同,就选取小的字母,这样显然是正确的. 然而若两端字母相同,我们怎么选 ...

  10. html中混入的特殊字符

    从设计那里拿来的psd中常常会有全角的单双引号. 如果只是拷贝这些字符到做好的html里面,顶多看到乱码再加以改正. 但是,如果是通篇的doc,需要加上各种html语义标签,在拷贝来的doc文字之间加 ...