小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

一個(gè)完整的Installshield安裝程序?qū)嵗?/span>

 herowuking 2015-05-23

前言

Installshield可以說是最好的做安裝程序的商業(yè)軟件之一,不過因?yàn)楣δ艿奶^于強(qiáng)大,以至于上手和精通都不是容易的事情,之前都是用InstallshieldProject Assistant對(duì)付過去的,這次做這個(gè)安裝程序,為了實(shí)現(xiàn)一些功能,必須寫代碼,國內(nèi)外現(xiàn)成的資料很少,而且很多都語焉不詳,自己反復(fù)啃了多次,對(duì)比Installshiel自帶的help,才明白資料所表達(dá)的意思。這個(gè)安裝程序雖然比較簡陋,在行家眼里可能是小菜一碟,但是也花了筆者一個(gè)星期的時(shí)間,閱讀了很多資料,啃了好幾天英文help,集成了很多先驅(qū)者的經(jīng)驗(yàn),也費(fèi)了自己不少心血做成的,對(duì)每一段代碼的用處、每一個(gè)用到的函數(shù)都進(jìn)行了詳細(xì)的說明,因此轉(zhuǎn)載時(shí)請(qǐng)務(wù)必保留轉(zhuǎn)載出處和由艾澤拉斯之海洋女神出品的字樣;如需刊登,請(qǐng)與作者聯(lián)系。

在此要感謝吞硬幣的小豬,天下曉明,余滿青,海洋C++樂園(此海洋不是彼海洋)等大蝦在互聯(lián)網(wǎng)上的無私奉獻(xiàn),他們的貼子和博客給了我很大啟示。

因?yàn)楸救耸亲?/span>java出身的,因此對(duì)這種類C++語言還是第一次接觸,有理解不當(dāng)之處,請(qǐng)朋友們指正。歡迎Emaillittle_fairycat@126.com

 

正文

需求:公司做了一個(gè)軟件產(chǎn)品,

1.         該軟件運(yùn)行需要JDK環(huán)境(不是JRE,因?yàn)樵撥浖?/span>windows注冊(cè)一個(gè)服務(wù),用到了JavaService,JDK才支持這個(gè)功能;不過這里側(cè)重于判斷是否安裝了某軟件是否安裝,而不是糾纏于該裝JDK還是該裝JRE);

2.         由于是Server-Client形式的,需要允許用戶選擇安裝組件,比如A機(jī)只裝Server端,B機(jī)只裝Client端;

3.         文檔不打包在安裝程序里,直接存放在光盤文件夾下方便用戶查看,同時(shí)允許用戶指定是否安裝文檔到計(jì)算機(jī)上(為什么這樣做,后面說明詳細(xì)原因);

4.         該軟件會(huì)以授權(quán)形式發(fā)放給用戶,不同的用戶,軟件本身可能相同,而不同的只是授權(quán)文件和一些配置,因此希望授權(quán)文件和配置文件不打包在安裝程序里,而直接存放在光盤里,以減少可能的重復(fù)打包安裝程序的勞動(dòng);

5.         在安裝完畢后,希望能自啟動(dòng)程序(因?yàn)樵撥浖枰诎惭b完畢后啟動(dòng)一個(gè)程序,該程序?qū)崿F(xiàn)向Windows注冊(cè)服務(wù)的功能,該程序最好由安裝程序啟動(dòng),而不是由客戶手動(dòng)啟動(dòng))。

6.         希望有反安裝程序

本文提到的“外部”指不打包在安裝程序里的,與安裝程序一起存放在光盤里的一些文件夾,這些文件夾包含了安裝中所需要的文件,同時(shí)也可能有其他用途,因此不適合直接壓縮打包在安裝程序里。

該實(shí)例實(shí)現(xiàn)了如下功能:

1.         顯示軟件許可協(xié)議

2.         判斷是否安裝了本軟件所需要的先決軟件JKD1.6.0_04,如無,則啟動(dòng)外部安裝程序進(jìn)行安裝(同樣原理可以用來判斷是否安裝了其他軟件,只要該軟件在注冊(cè)表中有鍵值)

3.         安裝允許用戶選擇需要安裝的組件

4.         用戶的輸入信息、所選安裝路徑、所選安裝組件將顯示在安裝界面上(Installshield雖然自帶了此界面,但是默認(rèn)是顯示為空的,需要寫腳本來顯示信息)

5.         根據(jù)用戶選擇的組件,在開始菜單顯示程序的快捷方式(同樣適用于桌面快捷方式,后面做詳細(xì)說明)

6.         根據(jù)用戶選擇的組件,從外部文件夾拷貝相應(yīng)的文件到安裝目標(biāo)路徑的文件夾中

7.         根據(jù)從外部拷貝進(jìn)來的文件,創(chuàng)建快捷方式(這里主要是拷貝文檔,并在開始菜單中創(chuàng)建快捷方式)

8.         在安裝結(jié)束時(shí),顯示readme.txt文件

9.         在安裝結(jié)束后,啟動(dòng)指定的程序

10.     完美卸載

筆者所用的環(huán)境為Installshield 12 Premier Edition,Windows XP with SP2, 該環(huán)境下建立的工程可以直接使用在Installshield 2008 Premier Edition下,Installshield 2008在打開Installshield 12所建的工程時(shí)會(huì)提示你是否需要進(jìn)行Upgrade,確認(rèn)即可,軟件會(huì)自動(dòng)為你進(jìn)行升級(jí),很方便。

下面我們一步一步來建立一個(gè)基本的工程,并且使用腳本來完善和豐富所需功能

 

第一部分:基本設(shè)置

 

1.         打開Installshield 12 Premier Edition,新建一個(gè)Installscript MSI Project,這種被稱之為半腳本程序,因?yàn)榧婢?/span>Basic Project基本類型和Installscript Project全腳本類型兩者的優(yōu)點(diǎn),我比較喜歡用。像我這樣需求的,既要用到Wizard的便利,又想寫一點(diǎn)腳本來實(shí)現(xiàn)一點(diǎn)自定義操作的,就比較適合用這種類型啦。

選擇類型為Windows Installer | InstallScript MSI Projcet,輸入工程名,指定工程所在的文件夾。

 

2.         界面會(huì)切換到Project Assistant,我們先從這里開始把工程的基本組件和基本文件建立好。

 

3.      Project Assistant界面的底部,會(huì)有一個(gè)引導(dǎo)動(dòng)作條,在建立該工程的基本結(jié)構(gòu)和文件時(shí),我們都將在此界面進(jìn)行操作,下文都將以“引導(dǎo)條”來指代這個(gè)引導(dǎo)動(dòng)作條。

 

 

4.         點(diǎn)擊引導(dǎo)條上的Application Information

這里輸入:

公司名,公司名將會(huì)出現(xiàn)在Setup.exe的注解中

軟件名,將會(huì)出現(xiàn)在安裝過程的左上角標(biāo)題欄上

版本號(hào),沒看到在哪,不過自己比較方便地知道自己在編譯哪個(gè)版本的軟件

公司網(wǎng)址,沒看到在哪,而且如果該公司沒有網(wǎng)址呢?而且這里有點(diǎn)bug,好像默認(rèn)的值總是會(huì)報(bào)一個(gè)String_ID1為空的錯(cuò)誤,自己輸入一個(gè)網(wǎng)址就不會(huì)報(bào)錯(cuò)。

是否在你創(chuàng)建了更新時(shí)自動(dòng)通知最終用戶,沒用過,我都選了No。

選擇一個(gè)圖標(biāo),這個(gè)圖標(biāo)會(huì)出現(xiàn)在“添加或刪除程序”里,我一般用默認(rèn)的,當(dāng)然你可以替換成自己想要的圖標(biāo)。

 

5.         點(diǎn)擊引導(dǎo)條上的Installation Requirement

這里選擇對(duì)操作系統(tǒng)和一些軟件的需求。根據(jù)自己需要來選擇是否要求操作系統(tǒng)的版本,已經(jīng)是否要求安裝了某些軟件。

 

6.         點(diǎn)擊引導(dǎo)條上的Installation Architecture

這是個(gè)十分有用的設(shè)置,對(duì)于本文所用的分布式軟件來說非常合適,分布式軟件的每個(gè)組件可以設(shè)置為一個(gè)Feature,用戶可以自由選擇安裝某些功能。

將選項(xiàng)Do you want to customize your Installation選擇為Yes。

點(diǎn)擊選中根節(jié)點(diǎn)Installation Architecture,點(diǎn)擊New創(chuàng)建新的Feature,可以為每個(gè)Feature指定新名稱。

還可以在Feature下創(chuàng)建子Feature,比如如果文檔Feature下包括軟件本身文檔,和軟件所需的運(yùn)行環(huán)境的文檔,那么可以創(chuàng)建兩個(gè)子Feature,分別包含兩種文檔,用戶在安裝時(shí)就可以選擇安裝部分或者全部文檔了。這里我們沒有用到子Feature,用途和普通Feature一樣。

 

這里,建立好所有Feature后,我們將切換到Installation Designer做一個(gè)設(shè)置

 

 

找到Installation Designer頁面上左邊導(dǎo)航樹Organization | Features分支,你會(huì)看到這里Features都顯示為原始的名稱,而非我們改過的名字,因?yàn)?/span>FeatureNameDisplay Name兩種名稱,我們剛才改的不過是Display Name,為了便于查看和使用,我們?cè)谶@里把Name也改一下

 

 

注意Name不可以有空格,可以使用下劃線

 

 

繼續(xù)切換回Project Assistant

 

 下一篇:一個(gè)完整的安裝程序?qū)嵗瑵衫怪Q笈癯銎?二) --基本設(shè)置二 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多