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模塊了。日誌

相關文章
相關標籤/搜索