打包——InstallSheild之InatallScript
上次講了InstallSheild用asistant的方式,你跟著弄就打處一個(gè)包來(lái)了,驗(yàn)證一下是否符合你的設(shè)置,就是安裝一下看看。這就不多說(shuō)了。
上次的解說(shuō)你可能已經(jīng)迫不及待要看看Installation Designer的方式。別急。
很多時(shí)候我們只需要照著一個(gè)簡(jiǎn)單的示例做一次成功,就能體會(huì)到達(dá)成一間事的最簡(jiǎn)單方式。所以這次改一下結(jié)構(gòu),講解和操作分離,凡是操作的部分都寫成 “xx操作:”后面跟上本示例操作,xx表示步數(shù),其實(shí)有的步是不必要的。你要親自動(dòng)手看有此標(biāo)簽的部分就行。有多余的需求和想了解在看具體講解。用標(biāo)簽 “講解:”表示具體講解。
下面開(kāi)始
1操作:打開(kāi)InstallShield x 又看到起始頁(yè),如下圖:
講解:要是沒(méi)有,你就新建一個(gè)。要?jiǎng)h除項(xiàng)目,通常是關(guān)閉InstallShield x,然后到ism所在的文件夾刪除整個(gè)文件夾就行。
2操作:點(diǎn)擊TTPlay.ism打開(kāi)上次建的項(xiàng)目,如下圖:
講解:看到如下圖,如果看到的不是,你就點(diǎn)一下標(biāo)簽頁(yè)Installation Designer,看到這個(gè)界面,我們應(yīng)該很高興,面熟呀,這不和vc6.0的和相似么。其實(shí)用法、語(yǔ)法也很相似,紅線圈住的部分是下一步操作的
3操作:點(diǎn)擊上圖左邊樹(shù)狀目錄中紅圈中的部分,看到如下圖:
講解:左邊的目錄也是九個(gè),對(duì)應(yīng)項(xiàng)目助手的九個(gè)步驟
4操作:右擊中間目錄中的,看到如下圖:再點(diǎn)擊Make default,那么默認(rèn)就是中文了。
講解:紅勾就到了Chiness選項(xiàng),上次的問(wèn)題就解決了,再次安裝是看到的就是中文了,不信可以點(diǎn)擊編譯、鏈接,執(zhí)行試試,和vc一樣,這兩個(gè)圖中都有,自己試試。
點(diǎn)擊Project Properties,可以看到,保存配置的方式是xml,其他信息都是默認(rèn)配置或你在工程助手那填寫的。
所有東西到要安裝,不需客戶選擇,那么可以如下操作
5操作:點(diǎn)擊左邊目錄的Setup Types ,看到中間目錄,右擊Complete選項(xiàng),點(diǎn)擊Remove刪除
講解:你說(shuō)為什么不刪除Custom因?yàn)?/span>Custom里才可以讓客戶選擇安裝路徑。
6操作:點(diǎn)擊左邊目錄的Files and Folders,展開(kāi)中間部分下邊欄中的Application Target Folder目錄看到如下圖
講解:Destination computer’s folders欄里的各目錄在同上節(jié)添加文件是所看到的彈出目錄含義相同,參看上節(jié),在這兒你可以展開(kāi)source computer’s folders中我的電腦,直到找到你要打包的文件夾,拖到下邊欄中的Application Target Folder目錄就行,也是比較浪費(fèi)時(shí)間(他要搜索你的整個(gè)結(jié)構(gòu)進(jìn)去),和使用工程助手添加文件夾的效果相同,但顯然這樣感覺(jué)更方便,尤其是有多個(gè)文件夾并列時(shí)(很多時(shí)候你不想要很深的目錄,公司名文件夾下、軟件名文件夾才到你拖進(jìn)來(lái)的文件夾,可能你的好幾個(gè)文件夾都只想做公司名文件夾下的子文件夾,那么想上次講的你可以不寫軟件名,然后再這多次拖動(dòng)并列的這幾個(gè)文件夾。)。在具體的,有少量文件變動(dòng)你可以點(diǎn)擊有文件變動(dòng)的文件夾,在最右邊上面的文件拖到下面的相應(yīng)位置。變動(dòng)比較大,建議你就吧下邊欄中Application Target Folder里的文件目錄都刪掉再重新拖進(jìn)去
7操作:點(diǎn)擊Shortcuts 展開(kāi)中間欄的ttplay目錄,展開(kāi)中間欄的Desktop目錄并點(diǎn)擊TTPlayer.exe1看到如下圖(這一步可以省去,只是看一眼就行,謹(jǐn)慎行事就在看講解)。
講解:沒(méi)有的話,你就自己在這兒建,相信你會(huì)需要這樣建而且也很方便,沒(méi)有快捷方式的話,可能你看到的只有Programs Menu 那么你就右擊Programs Menu點(diǎn)New Folder新建文件夾(就是在開(kāi)始菜單中的文件夾,一個(gè)文件夾中有可若干個(gè)選項(xiàng)調(diào)用不同的exe),然后對(duì)文件夾起名字(最好用你的公司名,要是改名,按F2就行了)然后右鍵點(diǎn)擊這個(gè)剛建的文件夾,點(diǎn)擊New Shortcut 新建你的快捷方式并起上名(也是彈出一個(gè)框,你找到你的exe,但名字是要自己給的)。要注意的就是起好名字后點(diǎn)擊這個(gè)快捷方式,在最右邊的wording Directory填上你的工作目錄,要不產(chǎn)生的快捷方式找不到你的exe,如果是Desktop就填上<DesktopFolder>,如果是Start Manu就復(fù)制Target中的目錄不到xxx.exe,而是它的上層目錄。如<TARGETDIR>"TTPlayer"TTPlayer.exe就只復(fù)制<TARGETDIR>"TTPlayer貼到Working Directory,把Display name改為你的軟件名,這個(gè)名字將顯示在快捷方式里,如這兒改成TTPlayer
8操作:點(diǎn)擊Registry,如下圖(只一步也可省去)
講解:和Files and Folders一樣,中間一欄上面是本機(jī)的,下面是對(duì)應(yīng)的,要注冊(cè)什么在本機(jī)上新建了,拖到下面就行了,也都點(diǎn)右鍵新建同名文件夾直到最下層,拖動(dòng)你剛建的名值對(duì)就完了。
講解:Server Configuration中的兩項(xiàng)是iis和SQL Server2000,我們都不用,也都很簡(jiǎn)單。跳過(guò)。
9操作:點(diǎn)擊InstallScript 看到如下圖
講解:這是重點(diǎn),這里可以添加代碼來(lái)修改環(huán)境變量、添加驗(yàn)證、添加調(diào)用等。這兒只會(huì)講到添加環(huán)境變量,添加調(diào)用會(huì)在講開(kāi)源軟件是講。具體語(yǔ)法講解只有InstallSheild 5的,從哪個(gè)網(wǎng)站下,忘了,剛搜了一下,感覺(jué)這個(gè)網(wǎng)站應(yīng)該能下:http://cio.ccw.com.cn/qtzl/htm2008/20081018_523911.shtml 不行你就到google 輸入 “installshield 丁有和”。
復(fù)制其中的部分代碼如下:
Dlg_Start:
nResult = 0;
Dlg_SdWelcome:
szTitle = "";
szMsg = "";
//{{IS_SCRIPT_TAG(Dlg_SdWelcome)
nResult = SdWelcome( szTitle, szMsg );
//}}IS_SCRIPT_TAG(Dlg_SdWelcome)
if (nResult = BACK) goto Dlg_Start;
Dlg_SdLicense2:
很顯示它的語(yǔ)法挺簡(jiǎn)單,大致你也能猜到,這兒是三個(gè)對(duì)話框,都是用標(biāo)簽的方式,說(shuō)明我們要跳來(lái)跳去,不錯(cuò),if (nResult = BACK) goto Dlg_Start;就是通過(guò)一個(gè)判斷調(diào)回上一個(gè)對(duì)話框。Dlg_Start即開(kāi)始對(duì)話框,Dlg_SdWelcome即歡迎對(duì)話框。nResult,szTitle等都是變量,并非弱類型的變量,前邊有定義。
廢話不多說(shuō),我們要加上一個(gè)環(huán)境變量,
10操作:對(duì)著有代碼那一欄拖動(dòng)滾動(dòng)條到最下面看到最后一個(gè)end為止,在它的下一行粘貼如下代碼:
function OnEnd()
string mypath, szKey, szEnv;
POINTER pEnv;
begin
mypath=TARGETDIR;
szKey="Environment";
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
RegDBSetKeyValueEx(szKey,"mypath",REGDB_STRING,mypath,-1);
szEnv = "Environment";
pEnv = &szEnv;
SendMessage (0xffff, 0x001A , 0, pEnv );
// MessageBox("設(shè)置了環(huán)境變量mypath ",0);
end;
講解:要調(diào)用函數(shù)就的在那些對(duì)話框中找個(gè)位置插入這個(gè)函數(shù),這兒就找“Dlg_SetupType2:”標(biāo)簽
11操作: 找到“Dlg_SetupType2:”標(biāo)簽,在其后新加一行 OnEnd();
講解:此時(shí)應(yīng)該點(diǎn)一下Complile,編譯一下(和用vc一樣來(lái)使用),若有錯(cuò)會(huì)和vc一樣在下面報(bào)出,雙擊錯(cuò)誤到出錯(cuò)行,如果你是復(fù)制代碼過(guò)去的,很可能是字符編碼不一致的問(wèn)題。特別是中文和空格,那么去掉每行前面的空格可能就去了大部分的錯(cuò)誤,有中文的行最好去了,自己再敲一次,實(shí)在不好解決的就全去了再全部敲一遍。
注釋方式和c,java的一樣,這兒把后面那個(gè)注釋去了,運(yùn)行到那時(shí)就會(huì)那個(gè)彈出對(duì)話框。內(nèi)部函數(shù)查幫助,語(yǔ)法和常用函數(shù)看我剛才介紹下載的講解。
這里邊還有調(diào)試運(yùn)行,好像不能加斷點(diǎn),全都是從頭至尾的走。但同樣有跳出函數(shù),停止調(diào)試等常規(guī)操作。
12操作:點(diǎn)擊Dialogs(可以省去),看到如下圖:
講解:在Skin里有多種風(fēng)格的皮膚,通過(guò)右鍵點(diǎn)擊來(lái)選取。All Dialogs里有從開(kāi)始安裝到結(jié)束安裝的各種可能用上的對(duì)話框,通過(guò)雙擊可以在這里改變這些對(duì)話框的結(jié)構(gòu)。當(dāng)然標(biāo)志installshied可不好去,最好也別去,誰(shuí)叫你用人家的產(chǎn)品。這些對(duì)話框的引用可以在前面的InstallScript代碼來(lái)引用。如Welcome對(duì)話框就用“Dlg_SdWelcome:”標(biāo)簽來(lái)引用。
13操作:點(diǎn)擊編譯。(與vc一樣)
講解:ok,本次操作結(jié)束。到你創(chuàng)建的目錄下就能找到setup.exe點(diǎn)擊安裝試試,或者點(diǎn)InstallSheild x里的運(yùn)行。也行。
如果加了環(huán)境變量,就能找到,如我這兒添加了mypath= C:"Program Files"JoinusRip,看看你的。有問(wèn)題提問(wèn)。
這次一個(gè)13個(gè)操作(可能還不要或者更多一點(diǎn))你就用InstallSheild x打包好一個(gè)軟件,不到兩分鐘。你可能急了,說(shuō)我只幫你解決了添加環(huán)境變量的問(wèn)題,你還有很多要求,要求調(diào)用其他軟件先安裝呀什么的。其實(shí)大部分情況這些已經(jīng)差不多了。你的問(wèn)題也許可以換種方式,要不你自己正是很不輕松,盡管你及其勤奮。要先安裝其他軟件,你可以通過(guò)選擇安裝對(duì)話框加說(shuō)明讓用戶先安裝你要求的。這種對(duì)話框你可以通過(guò)另外的打包軟件處理,要不去記InstallSheild的一堆語(yǔ)法,不一定吃得消。我也不敢講一堆,更主要的原因是,這可不是免費(fèi)的軟件,你用了說(shuō)不定哪天律師就來(lái)找你了,所有你僅僅體驗(yàn)一下明白打包的一個(gè)大體過(guò)程就可以了,學(xué)問(wèn)有相似之處,再學(xué)其他的也就不那么難了。除非你公司買了InstallSheild,否則你就先把它扔一邊吧,我們有更好的開(kāi)源軟件,雖然一下子講不到最好的。
提醒一下,如果你運(yùn)行了剛打好的包,或打開(kāi)了包所在的文件夾,此時(shí)編譯會(huì)過(guò)不去,總提醒一個(gè)錯(cuò)誤,還有InstallSheild x有很多bug,不行了,你就刪除從來(lái)。有人翻譯了InstallSheild2008的部分,當(dāng)然幫助沒(méi)翻譯,你可以下來(lái)看看都什么意思,但想使用好像不是很現(xiàn)實(shí)。當(dāng)然要學(xué)好就得看英文的,很多人都習(xí)慣了看英文的幫助,但一下子要看明白并操作許多也還是花點(diǎn)時(shí)間的。另外所有的部分都是用例子來(lái)講,不會(huì)面面俱到,要深入必須再花時(shí)間看幫助,相信有了例子,再看幫助的時(shí)候理解的就多了。
下次進(jìn)入開(kāi)源,最簡(jiǎn)單的jsmooth,中文版翻譯是劉長(zhǎng)炯,這次我慘了。希望他沒(méi)寫相關(guān)的,要不撞車了。
一種更好的態(tài)度,更好的學(xué)習(xí)、思維方式。它會(huì)是網(wǎng)絡(luò)極佳的生存方式,你喜歡就對(duì)。
posted on 2008-11-17 01:14 yangyusong 閱讀(1522) 評(píng)論(2) 編輯 收藏