水晶報表13.x(Crystal Reports for VS2010)的安裝部署經驗


這兩天搞安裝包真心坎坷,一個問題接一個問題,先是為了實現自定義動作現啃vbs,后面又是安裝過程老是報錯:

各種搜索、各種嘗試,總算搞掂,積累了些經驗,分享一下。

首先CR for VS2010的所有東東都在這里:http://scn.sap.com/docs/DOC-7824

簡單說一說資源下載表的情況,資源表如圖(敢情都出到SP10了,我用的是13.0.9.1312):

每列代表一類資源,每行代表一個版本,我僅就我知道的資源類別介紹一下:

Install Executable:我理解是完整版,包括VS插件、報表設計器、運行環境等所有東西,裝上后就可以在VS中創建CR報表了。適用於開發機;

MSI 32/64 Bit:運行環境獨立安裝包,分別適用於32/64平台。就是裝在客戶電腦上的東東,下文我所謂的MSI整合法就是指這個;

MSM 32 Bit:也是運行環境,只不過是用來合並在安裝包中的,不能獨立安裝。看起來只有32位版;下文我所謂的MSM合並法就指它

別的什么ClickOnce、WEB XML Dep..啥的我沒用過,不清楚。

一、MSM合並法

這是我最先選擇的方式,也正是老出現上述報錯的方式。

優點:正統打包方式;得到的安裝包體積相比MSI整合法小接近30M

缺點:不管系統是否已經有CR組件,安裝時長都不短(我的環境是起碼2min+),光軟件部分的安裝過程其實是很快的,等於大部分安裝時間都是部署CR組件去了

另外有一點我現在懶得確認了,就是該方式在軟件卸載時會不會連CR組件一起卸載不確定,以后有機會再試。

該方法的官方文檔在此:

http://wiki.scn.sap.com/wiki/display/BOBJ/Using+Crystal+Reports+for+Visual+Studio+2010+Merge+Modules+(MSM)+to+create+a+Setup+project

E文好的童鞋照着做應該就成了,我主要說一下我認為的關鍵點:

1、CR的msm文件最少只需並一個即可,就是CRRuntime_13_x.msm,40M多那個,其余的是語言包和一個CRRuntime_maps_13_x.msm,maps這個不知道干嘛的,反正我沒並也不影響使用。語言包的話按需並就是。

2、另外要並4個VC80的msm,分別是:Microsoft_VC80_ATL_x86.msm、Microsoft_VC80_CRT_x86.msm、Microsoft_VC80_MFC_x86.msm、Microsoft_VC80_MFCLOC_x86.msm。這個在官文的截圖中有體現。關鍵問題是,裝VS2010后,在【C:\Program Files (x86)\Common Files\Merge Modules】中只會有VC100版的msm,上哪弄VC80的着實讓我折騰了一下,后來是在虛擬機中裝個VS2005才得到的,已上傳至網盤:http://pan.baidu.com/s/1dDELlWt。下載后放到上述Merge Modules目錄中即可。

3、另一個關鍵是,客戶機要裝這個http://www.microsoft.com/zh-CN/download/details.aspx?id=14431,即VC++2005 SP1分發包的ATL更新。扯一下,VC++05的分發包我知道的有這么4個:VC++05、VC++05 SP1、VC++05 SP1 ATL、VC++05 SP1 MFC,根據經驗,SP1包含RTM,ATL更新和MFC更新又都包含SP1,但ATL和MFC應該互不包含(從文件大小判斷)。總之本例來說,只需且必須在客戶機裝ATL更新即可,之前老報那個錯就是因為客戶機只裝了RTM或SP1的原因,這個在官文中也有提及。

完成以上3點,MSM法就沒問題了。說實話弄清楚以上關鍵點煞費周折,容我張狂,網上說CR部署的文章不少,但都沒嘰歪到重點,不知道是那些作者RP好沒遇到問題還是咋的。

二、MSI整合法

該方法其實原理就是,先裝CR運行環境獨立安裝包(見上文資源表說明部分,下文簡稱CR MSI,下文說的安裝包都指軟件安裝包),再裝軟件本身,跟手動分開裝一樣的效果,只不過整合到安裝包中的話,是由安裝包調用CR MSI進行安裝,而不是人工安裝。照例說一說我認為的優缺點:

優點:不折騰。由於CR MSI是可以獨立安裝的,它已經集成了VC80 msm、ATL啥的,只要它裝完就已經可以支撐報表運行;另外就是這種方法可以寫條件判斷是否已裝CR組件,如果已裝就不裝了,這樣能大大縮短整個安裝時長

缺點:安裝包比MSM合並法大近30M。原因當然是CR MSI本身就有70M多的個頭,比40M的CRRuntime_13_x.msm+單個語言包就大了那么多

此外這種方法安裝完成后,在控制面板【添加/刪除程序】中會體現CR運行環境:

意味着可以獨立卸載它,這個是優/缺點各人看待。

言歸正傳,具體整合方法,因打包軟件不同而不同,所以不好詳說。我用的是Advanced Installer(簡稱AI),是在先決條件中加入CR MSI,加入后AI能智能識別並填好安裝條件什么的,就是在客戶機還沒裝CR MSI時,安裝過程就會執行CR MSI,否則不執行,這樣在已裝CR運行環境的機器上,整個安裝過程就很快。話說無論是MSM法還是MSI法,只要是沒裝CR的機器,部署CR組件的時間都挺長的,這尼瑪水晶報表更新到這一版就這點不好,早期版本的安裝都是很快的,這一版沒個幾分鍾裝不下來。所以正是因為安裝時長這個問題,在我解決msm法后,毅然決然還是選用MSI法,原因就是后者可以判斷,在已裝過的情況下可以不裝(例如重裝軟件),而前者就是不管裝沒裝過都要耗一下,反正我是挺在意安裝時長這事的。

三、手動MSI法

這條完全是湊數的,它就是上面第二法的手動版,沒技術含量,不過作為列舉部署方法的文章來說,它的確也是方法之一,並且該方法可以大大縮小安裝包的體積,省70M哦親。容我啰嗦,此法在部署時需要扔兩個文件到客戶機,自然就是CR MSI和軟件安裝包這倆貨了,完了先裝CR MSI,再裝軟件。如果客戶機已經裝過CR,只需傳一個不帶任何添加劑的綠色無公害安裝包過去即可,這在ADSL翔上行的年代,還是有點愜意的,這也是此法寫出來的緣由。

Anyway~折騰了幾天,這鳥包總算打好,開始下一個項目...

- 文畢 -


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM