zoukankan      html  css  js  c++  java
  • 自定义VS2008安装包中的系统必备

    最近试验设计器的独立模式应用程序,VS2008独立模式的应用程序除了需要Framework3.5之外,还需要独立模式的运行环境。这样在制作安装包的时候,就希望最好能够将独立模式运行环境也一起发布。本来以为很简单的事情,谁知道搞了好长时间。

    制作安装包的过程就不详细说了,重点说说独立模式运行环境。首先需要检查是否安装了独立模式的运行环境,通过在“启动条件”中添加一个注册表搜索就可以解决。然后增加“启动条件”,在“启动条件”的属性中,有一项InstallUrl,如下图:

    对于该属性,MSDN的解释是有3种写法:URL方式表示启动条件所需要文件的网址;UNC方式表示所需文件的网络共享路径;文件路径方式表示所需文件相对于安装程序所以文件夹的路径。于是在生成的安装包位置创建shell文件夹,并将所需要文件vs_shell_isolated.chks.exe复制到shell文件夹,然后执行安装程序,可以却显示如下图所示错误:

    如果去掉InstallUrl中的内容重新编译就可以进行安装,查了N久都没找到问题的解决办法。直到现在还是没有搞清楚InstallUrl这个属性到底是干什么用的,我想可能如果发现不满足启动条件,就和Message属性一起,提示用户在什么地方自行安装。

    后来就想,既然Framework可以作为系统必备进行自动检测并安装,能否将这个环境也做成系统必备呢?能否添加系统必备项呢?

    于是Google了一下“vs2008 自定义 系统必备”,第一个就是MSDN中的相关信息“添加自定义系统必备”,了解到系统必备主要是定义product.xml和package.xml并准备相关文件(这里提供一个工具来生成系统必备)。于是定义了一个VS2008独立模式的系统必备项,然后制作安装包,顺利安装。下图是添加后的系统必备对话框(图中蓝色部分):

    由于这里采用的是带SP1的独立模式运行环境,那么相应的Framework也应该是.Net Framework 3.5 Sp1,于是再选择3.5Sp1的系统必备重新编译,可是编译时却出现如下错误:

    后来按照这篇BLOG修正了该问题,至此,顺利解决独立模式应用程序的安装部署。

    顺便说一下,除了通过安装项目和其他安装工具制作安装包之外,微软还提供Windows Installer XML制作安装包。

    注意事项:
    1、在系统必备中需要选择“从与我的应用程序相同的位置下载系统必备组件”这一项,否则可能会从网络下载必备文件。
    2、要使安装程序能够自动安装系统必备,必须使用setup.exe启动安装,而不能直接通过*.msi进行安装,至于原因,请参考这里
    3、虽然安装程序能够自动安装系统必备,但是仍然不要放弃安装项目中的“启动条件”,因为用户可能会直接通过*.msi来进行安装。

  • 相关阅读:
    markdown syntax
    solidity_mapping_implementation
    paramiko 模块安装和使用
    检测服务运行的脚本
    系统非正常关机启动后出现:an error occurred during the file system
    bacula 备份恢复
    socket 网络编程
    Python 8 协程/异步IO
    Linux系统通过console口连接交换机
    Python 7 多线程及进程
  • 原文地址:https://www.cnblogs.com/sdfkfkd/p/2352923.html
Copyright © 2011-2022 走看看