2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

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

 herowuking 2015-05-23

前言

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

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

因?yàn)楸救耸亲?/span>java出身的,因此對(duì)這種類(lèi)C++語(yǔ)言還是第一次接觸,有理解不當(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ù),用到了JavaServiceJDK才支持這個(gè)功能;不過(guò)這里側(cè)重于判斷是否安裝了某軟件是否安裝,而不是糾纏于該裝JDK還是該裝JRE);

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

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

4.         該軟件會(huì)以授權(quán)形式發(fā)放給用戶,不同的用戶,軟件本身可能相同,而不同的只是授權(quán)文件和一些配置,因此希望授權(quán)文件和配置文件不打包在安裝程序里,而直接存放在光盤(pá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.         希望有反安裝程序

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

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

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

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

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

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

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

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

7.         根據(jù)從外部拷貝進(jìn)來(lái)的文件,創(chuàng)建快捷方式(這里主要是拷貝文檔,并在開(kāi)始菜單中創(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在打開(kāi)Installshield 12所建的工程時(shí)會(huì)提示你是否需要進(jìn)行Upgrade,確認(rèn)即可,軟件會(huì)自動(dòng)為你進(jìn)行升級(jí),很方便。

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

 

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

 

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

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

 

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

 

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

 

 

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

這里輸入:

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

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

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

公司網(wǎng)址,沒(méi)看到在哪,而且如果該公司沒(méi)有網(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)通知最終用戶,沒(méi)用過(guò),我都選了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ù)自己需要來(lái)選擇是否要求操作系統(tǒng)的版本,已經(jīng)是否要求安裝了某些軟件。

 

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

這是個(gè)十分有用的設(shè)置,對(duì)于本文所用的分布式軟件來(lái)說(shuō)非常合適,分布式軟件的每個(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指定新名稱(chēng)。

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

 

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

 

 

找到Installation Designer頁(yè)面上左邊導(dǎo)航樹(shù)Organization | Features分支,你會(huì)看到這里Features都顯示為原始的名稱(chēng),而非我們改過(guò)的名字,因?yàn)?/span>FeatureNameDisplay Name兩種名稱(chēng),我們剛才改的不過(guò)是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)購(gòu)買(mǎi)等信息,謹(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)論公約

    類(lèi)似文章 更多