• VS 制作安装包小窥


    难得忙里偷闲,看到有关VS制作安装包,按下文小试一把,还行,比不上Installshield。

    首先在打开 VS2010    》   文件 》新建项目

    创建一个安装项目  XXX    

    在“目标计算机上的文件系统”下我们看见    应用程序文件夹,用户程序菜单 ,用户桌面  , 在  应用程序文件夹  右击添加文件夹(即安装后所在安装路径下生成的包含程序相关组件的文件夹)

     

    本列中添加了  测试安装程序文件夹   ,在   测试安装程序文件夹  上右击  ,选择 添加,根据项目需要 ,将所有程序所需要的组件都添加进去,本例中 将XXX.exe  ,XXX.dll ,图标等文件添加

     

    要实现卸载功能的话,需要将  C:WindowsSystem32msiexec.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安全设置” 取消勾选 ,重新编译 程序即可,经过修改后的程序,在安装后运行是以管理员身份运行,就不存在 拒绝访问的问题了。

     

  • 相关阅读:
    redis要注意的一些知识
    redis数据类型及常用命令使用
    基于zookeeper的分布式锁
    基于redis的分布式锁
    基于数据库的分布式锁
    数据库的4中隔离级别
    远程调用历史及代码编写demo
    数据库的ACID跟事务隔离级别
    JAVA8 十大新特性详解
    java8 :: 用法 (JDK8 双冒号用法)
  • 原文地址:https://www.cnblogs.com/zhulinyixuan/p/3173459.html
Copyright © 2020-2023  润新知