zoukankan      html  css  js  c++  java
  • InstallShield中打包ArcEnineRuntime

    InstallShield中打包ArcEnineRuntime

            最近研究了一阵应用程序的打包,几天下来也算颇有收获。普通的.net程序打包相对简单一点,不过ArcEngine的应用程序还涉及到Engine Runtime的检测及安装。所以我采用的是IntallShield软件打包。
            3SNews版主[zhaoxiang_whu]写过一篇《利用InstallShiled 10.5 打包AE 开发的应用程序》,我也是看了篇教程才去实践的。该方法的原理是将Engine Runtime和程序文件一起打包进一个Setup.exe文件中,然后Runtime释放到目标文件夹下;等于是安装完成之后才检测目标机器是否安装Runtime;若无,则调用系统Msiexec.exe安装Runtime.Msi。成功后便删除掉目标机器上的Runtime安装包。
             这是一个可行的方法,但是Runtime 243M,比较大导致安装包Setup.exe也比较大,而且无论目标机器上是否安装都得执行一遍Runtime安装包的释放和删除操作。这对于此提出一个改进的方法:
              1.将Runtime 拷贝到安装盘或者与应用程序相同的目录下;
              2.在InstallShield脚本事件的OnBegin中添加判断:

    RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);  
    //判断是否安装ArcGIS Engine Runtime 也可以添加版本判定
    if (RegDBKeyExist ("SOFTWARE\ESRI\.ArcGIS Engine Runtime") < 0) then
       //判断是否存在Runtime安装包
       if (FindFile ("Runtime", "Setup.msi", svResult) = 0) then
            SdShowMsg("正在安装ArcGIS Engine Runtime 9.2,请稍候...",TRUE);
            //判断是否安装成功
            if (LaunchAppAndWait ("Runtime\Setup.exe","", LAAW_OPTION_WAIT)<0)then
                MessageBox("安装ArcGIS Engine Runtime 失败!",WARNING);
                abort;
                SdShowMsg("正在安装ArcGIS Engine Runtime 9.2,请稍候...",FALSE);
            endif;
            SdShowMsg("正在安装ArcGIS Engine Runtime 9.2,请稍候...",FALSE);   
        else
            MessageBox("没找到ESRI ArcGIS Engine 9.2 Runtime安装程序,请自行安装!",WARNING);
        endif
    endif;

            按此方法可以检测和安装任何软件运行条件,比如.NetFrameWork和AE运行时补丁、AE运行时中文包、Licence注册等。最后用户需点下一步下一步就可以完成安装了。此外,如果不熟悉installshield脚本可以将各种安装步骤写成批处理。最后由LaunchAppAndWait ()调用;效果一样。

    ==================
    更多Engine安装与部署参见《ArcGIS Engine 中文开发指南.pdf》

  • 相关阅读:
    hadoop02---高可用网站架构
    springboot-vue项目前台2
    Java Serializable(序列化)
    JAVA 正则表达式、汉字正则、 java正则代码
    MyEclipse导入Maven项目
    JAVA学习:maven开发环境快速搭建
    删除
    关于java程序打包为EXE的若干问题
    ServletContext与ServletConfig的详解及区别
    在CSS中定义a:link、a:visited、a:hover、a:active顺序
  • 原文地址:https://www.cnblogs.com/xianyin05/p/3357642.html
Copyright © 2011-2022 走看看