Holinz

AE项目打包

打包详细信息:Setup Factory 7.0打包软件,VS2005+AE92下的Winform项目
1.依赖项:
    Dot Net Framework20
    AO类库sp3补丁
    AE运行时以及sp4补丁
    第三方控件:Developer Express .NET v7.2,Xtreme.Suite.Pro 10.4.2
2.打包过程:
    1.利用VS自带打包工具检查项目的所有依赖项以及文件(但本打包程序没有使用自带的该打包工具)
    2.将所需要的文件进行分类,本人主要分成DotNet、AE Runtime、Data(应用程序所需空间数据)、以及第三方控件等
    3.用Setup Factory建立打包项目(熟悉Setup Factory建立打包项目以后有时间再介绍点,:-) 我也刚用 ),主要分配待打包项目的文件的安装位置(在目标“安装到”修改),同时还要其他比如快捷方式等的修改。
    4.Setup Factory中,“工程”下拉菜单的“屏幕”子菜单,在项目文件安装到指定位置后的屏幕进行操作,选择“安装之后”Panel进行“编辑”,在“操作”panel中填写附加安装DotNet Framework、ArcEngine Runtime运行时以及AE Runtime sp4补丁、Desktop92sp3补丁、ArcGIS Licence注册、第三方控件注册以及破解等的代码。
        4.1.安装DotNet Framework时,事先进行判断目标机器是否已经安装框架20,或是否低于该版本。我只进行了是否安装框架20判断,详细判断过程如下Setup Factory脚本代码(详细见附件中dotnet2_0.xml文件)。
        4.2.安装ArcEngine Runtime运行时,注意:AE 运行时需要依赖Dot Net 框架,所以运行时次后安装。运行时安装前同样也判断目标机器是否已经安装,注册表项检查等。以上SF中的脚本代码可详见附件中的Main Code文本文件。
        4.3.添加运行时sp4补丁(由于本应用程序需要该补丁),可以先将AE运行时的sp4.msp以及Setup.msi进行整合,整合命令:
msiexec.exe /a D:\XXX\Stup.msi /p "D:\XXX\Setup.msp" /L*vx patch.log,其中msiexec.exe以及参数意义详细自己查,/L*vx patch.log为创建一个整合过程的日志。整合过程中出现一个指定安装位置的操作(相当于安装AE 运行时吧),整合后在该安装位置有安装的文件,整合后,在安装AE运行时以及sp4补丁时应该不需使用该位置的所有文件,因为msp补丁程序中的东西已经被整合到msi文件中了(整合后发现msi文件变大了),但测试时不成功,劳烦大家帮忙解决。所以呢,AE Runtime sp4是自己安装完该打包程序后进行手动安装的。
        4.4.Licence 注册,使用命令:C:\WINDOWS\system32\SoftwareAuthorization.exe -lif "C:\WINDOWS\system32\temp.temp" -s,在bat批处理文件中命令:start C:\WINDOWS\system32\SoftwareAuthorization.exe -lif "C:\WINDOWS\system32\temp.temp" -s,在Setup Factory脚本中可以为:File.Run(SessionVar.Expand("%TempFolder%\\AERT\\SoftwareAuthorization.exe -lif %TempFolder%\\AERT\\ArcEngine91.ecp. -s "), "", "", SW_SHOWNORMAL, true);

注意:

1.网上所传的dotnet2_0.xml有一处致命错误,应该将里面的%TempFolder%更改为%TempLaunchFolder%,否则所进入的文件夹错误,运行不了dotnetfx.exe。网上传的那个xml文件都没有经过测试,我也郁闷了半天。

*.首先%TempFolder%:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp目录,而%TempLaunchFolder%则是某个安装程序在Temp文件夹下的一个集中放置安装程序的临时文件夹,比如Setup Factory,其%TempLaunchFolder%为:_ir_sf7_temp_i,这样避免与其他安装程序放置在Temp目录下的文件混合在一起。

*.其次,有点不妥的是,在%TempLaunchFolder%在,不允许有子目录了,所有本应该在子目录下的文件都被拖出来放在在该%TempLaunchFolder%下了,所以很多时候一些附加模块的安装时,由于所在%TempLaunchFolder%文件目录发生了更改,导致无法安装。这主要出现在Dependencies附加模块时。

2.在使用不支持DllRigisterServer的dll注册到GAC中(%WindowsFolder%\assembly)时,使用gacutil /i 命令,需要对gacutil.exe需要附加路径 ,否则出现类是错误:"gacutil不是内部命令"。(可以将gacutil.exe附加到安装包中)

3.在批处理命令中查看批处理后的结果时,可以先不让批处理窗口跳出,使用pause命令

4.如果.ocx 或其他ole支持DllRigisterServer的话,直接在Setup Factory文件窗口中文件属性,高级选项板中勾选“注册COM接口”以及“注册类型库”即可在安装时注册了该.ocx了(等效于使用regsvr32命令了)

5.在程序中有SQL Server数据库连接时,因为已经安装了ADO.Net了,就无需安装MSDE以及MDAC模块了。

AE项目打包的更多相关文章

  1. Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...

  2. (转载)Eclipse将引用了第三方jar包的Java项目打包成可执行jar的两种方法

    转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 "MA ...

  3. 将引用了第三方jar包的Java项目打包成jar文件的两种方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...

  4. Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式

    转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFES ...

  5. 图解使用VS的安装项目打包程序

    背景 这段时间一直在做客户端程序的打包程序,遇到各种坑.因为以前没有任何这方面的经验,历经各种折腾,费尽九牛二虎之力总算是完成了. 虽然没有太多技术含量,但是因为挺繁琐的,所以还是在此记录一下. 由于 ...

  6. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  7. maven 项目打包 及window下部署到tomcat

    1.maven项目打包 2.将war文件拷贝到tomcat目录webapps下(不要再建目录)3.将必要的jar文件拷贝到tomcat目录libx下 war包 或jar 包 会生成到项目所在路径 的t ...

  8. Storm系列(三):创建Maven项目打包提交wordcount到Storm集群

    在上一篇博客中,我们通过Storm.Net.Adapter创建了一个使用Csharp编写的Storm Topology - wordcount.本文将介绍如何编写Java端的程序以及如何发布到测试的S ...

  9. javaweb项目打包成war包

    从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择J2 ...

随机推荐

  1. [BZOJ4027][HEOI2015]兔子与樱花 树形dp

    Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接 ...

  2. Sql 最简单的Sqlserver连接

    string name = txtUserName.Text.Trim();//移除用户名前部和后部的空格 string pwd = txtUserPwd.Text.Trim();//移除密码前部和后 ...

  3. 获取String类型汉字乱码,如何进行编码

    本文为博主原创,未经允许不得转载: 在解析properties文件中的汉字时,在java代码中解析得到的是一个乱码字符,形如图下: 导致乱码原因:由于在jdk中,默认为gbk编码方式进行编码盒接收的, ...

  4. UVa 11093 环形跑道(模拟)

    https://vjudge.net/problem/UVA-11093 题意:环形跑道上有n个加油站,编号为1~n.第i个加油站可以加油pi加仑,从加油站i开到下一站需要qi加仑汽油.输出最小的起点 ...

  5. resource not found : rosbridge_server

    1.放到src下,改名字为rosbridge_server,编译catkin_make git clone https://github.com/RobotWebTools/rosbridge_sui ...

  6. TypeScript基础学习

    什么是TypeScript? TypeScript是一种由微软开发的自由的和开源的编程语言,它是JavaScript的一个超集,扩展了JavaScript的语法. TypeScript支持任意浏览器, ...

  7. 棋盘覆盖问题(算法分析)(Java版)

    1.问题描述: 在一个2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有种情形.因而对任何 k≥0,有4k种不 ...

  8. Thunder团队项目视频展示

    视频链接:http://v.youku.com/v_show/id_XMzA5MjMzMzcyMA==.html?spm=a2h3j.8428770.3416059.1 视频简介:通过一个小情景开篇, ...

  9. URAL 1513 Lemon Tale

    URAL 1513 思路: dp+高精度 状态:dp[i][j]表示长度为i末尾连续j个L的方案数 初始状态:dp[0][0]=1 状态转移:dp[i][j]=dp[i-1][j-1](0<=j ...

  10. SVN提交文件失败:系统找不到指定路径

    完成程序代码工作后,进行SVN的文件提交.先进行项目的更新,然后在修改的文件上进行提交操作,发现SVN弹出提示信息,“系统找不到指定路径”提交失败,如下图:                       ...