AE项目打包

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); html

注意:数据库

 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附加模块时。post

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

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

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

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