假設(shè)我們要為 foo 程序生成一個(gè)安裝文件,在打包之前您應(yīng)該將 foo 的可執(zhí)行程序、所需 dll 和資源文件等放在一個(gè)文件夾 foo 中。比如假設(shè) foo 程序的目錄是這樣的。
下面我們就可以使用 HM NIS Edit 來創(chuàng)建 NSIS 腳本了。啟動(dòng) HM NIS Edit,在 File 菜單中選擇 New script from wizard 腳本生成向?qū),點(diǎn)擊 Next 下一步,進(jìn)入程序信息頁。
Application name 程序名這里我們填入要打包的程序名 "foo";Application version 程序版本我們填入 foo 的版本,比如 "1.0";Application publisher 發(fā)布者我們填程序的開發(fā)公司名或者自己的名字,比如 "張三";Application website 程序主頁我們填程序的主頁名,沒有主頁的就可以不填。然后點(diǎn)擊下一步進(jìn)入安裝文件選項(xiàng)頁。
Setup icon 安裝圖標(biāo)是您希望您的安裝文件長(zhǎng)什么樣子,而不是您應(yīng)用程序的圖標(biāo),一般選擇默認(rèn)即可;Setup file 是您希望安裝文件叫什么名字,比如 "foo-1.0-setup.exe";Setup lang 安裝程序語言是安裝過程中的提示所使用的語言,您可以根據(jù)您的需要選擇,比如簡(jiǎn)體中文 "SimpChinese";GUI 是安裝文件的對(duì)話框風(fēng)格,隨便您喜歡哪種;Compress 壓縮格式是您希望使用什么格式將應(yīng)用程序壓縮存放在安裝文件中。然后點(diǎn)擊下一步進(jìn)入應(yīng)用程序默認(rèn)安裝目錄和協(xié)議頁。
Application default directory 里面填您的應(yīng)用程序默認(rèn)安裝到哪里,比如 $PROGRAMFILESfoo 是默認(rèn)安裝到 C:Program Filesfoo 目錄下,最好勾選上 Allow user to change the application directory,允許用戶更改安裝目錄,這樣您的程序顯得更人性化一點(diǎn)兒;License file 是指應(yīng)用程序所使用的協(xié)議文本,如果您在 foo 目錄下已經(jīng)準(zhǔn)備了協(xié)議文件 license.txt,那么直接填 licence.txt 即可。這個(gè)協(xié)議就是您通常在 Windows 下安裝軟件時(shí),第一個(gè)頁面提示的“是否同意上述協(xié)議”的“上述協(xié)議”文本框里的內(nèi)容;下面幾個(gè)選項(xiàng)是讓用戶選擇如何接受協(xié)議。點(diǎn)擊下一步,進(jìn)入應(yīng)用程序文件選擇頁。
在應(yīng)用程序文件選擇頁中會(huì)有三個(gè)文本框。這個(gè)頁面的作用是分組添加應(yīng)用程序所需要的程序文件,這樣用戶安裝時(shí)就可以通過選擇“最小安裝”、“完全安裝”、“自定義”等選擇安裝不同的組件。左上方的文本框是組件框,右下方的文本框是組件信息說明框,右方最大的文本框是每個(gè)組件所包含的可執(zhí)行、dll 和資源文件。如果我們的程序很簡(jiǎn)單,不用分什么組件,我們就只用一個(gè) MainSection 就行了。點(diǎn)中左上方文本框中的 MainSection,在右側(cè)將所有程序文件添加進(jìn)去。由于我們已經(jīng)將所有文件都放置在了 D:foo 目錄下,我們只需要點(diǎn)選第二個(gè)圖標(biāo):Add directory tree,在對(duì)話框中將源目錄選擇為 F:Moviefoo,目標(biāo)目錄選擇為 $INSTDIR,這樣 foo 下所有的文件和目錄都將會(huì)被安裝到 $INSTDIR(默認(rèn)是 C:Program Filesfoo)目錄下。確定之后返回文件選擇頁,點(diǎn)擊下一步進(jìn)入應(yīng)用程序圖標(biāo)頁。
應(yīng)用程序圖標(biāo)頁的主要作用是選擇將會(huì)被安裝到“桌面”和“開始”菜單的快捷方式指向的可執(zhí)行程序。如果您的程序名和項(xiàng)目名一樣,或者 foo 目錄下只有一個(gè) exe 可執(zhí)行文件,此處就使用默認(rèn)設(shè)置即可。Create an Internet shortcut in the Start Menu folder 的意思是在“開始”菜單中添加一個(gè)到軟件主頁的快捷方式;Create an Uninstall shortcut in the Start Menu folder 的意思是在“開始”菜單中添加一個(gè)到卸載程序快捷方式。點(diǎn)擊下一步進(jìn)入安裝后執(zhí)行設(shè)置頁。
安裝后執(zhí)行的意思是當(dāng)安裝程序安裝完成后,用戶選擇安裝后直接啟動(dòng)應(yīng)用程序或者查看自述文件時(shí),程序的行為。如果您有自述文件,就在 Readme 中填入自述文件的名字,比如 readme.txt,如果沒有,就什么也不填,直接進(jìn)入下一步程序卸載選項(xiàng)。
如果您選擇了使用卸載程序 Use uninstaller,NSIS 將會(huì)為您自動(dòng)生成一個(gè)卸載程序,其選項(xiàng)使用默認(rèn)即可。點(diǎn)擊下一步進(jìn)入結(jié)束頁。
最后結(jié)束時(shí),HM NIS Edit 會(huì)詢問您是否保存腳本。當(dāng)然要保存了,保存了以后再需要生成安裝文件時(shí)就不必使用 HM NIS Edit 重新生成腳本了。Convert file paths to relative paths 將腳本中的文件路徑修改成相對(duì)于腳本文件的路徑,這個(gè)選項(xiàng)也最好選上,這樣在更改 foo 的目錄時(shí),我們只需要 NSIS 腳本與 foo 的相對(duì)位置不變就不影響腳本的使用。接下來保存腳本文件,最好將腳本文件保存在 foo 目錄下,這樣以后需要重新生成安裝文件,只需要將 NSIS 拷貝到 foo 目錄下就可以編譯了。比如取名為 foo.nsi。
這樣,整個(gè)腳本文件我們已經(jīng)編寫好了,F(xiàn)在我們到 D:foo 目錄下,就能發(fā)現(xiàn)一個(gè) foo.nsi 文件,右鍵點(diǎn)擊 foo.nsi,在下拉菜單中選擇 Compile NSIS script,不出錯(cuò)的話,就能在當(dāng)前目錄下生成一個(gè)名為 foo-1.0-setup.exe 安裝文件了。您可以雙擊執(zhí)行一下它,看看安裝過程是否如您所料。
我們也可以使用命令行編譯 NSIS 腳本,您可以使用這個(gè)命令:
C:Program FilesNSISmakensis.exe foo.nsi
如果您將 C:Program FilesNSIS 添加到了 PATH 環(huán)境變量中,就可以直接使用 makensis.exe foo.nsi 來編譯了。
小技巧:
1. 當(dāng)生成 NSIS 腳本之后,我們想修改設(shè)置,不需要重新執(zhí)行一遍腳本生成向?qū)。只需要?a href="http://elephantinaurance.com/s/wbbjq/" target="_blank">文本編輯器打開 foo.nsi,找到相應(yīng)的域,更改設(shè)置即可。
2. NSIS 是一個(gè)相當(dāng)強(qiáng)大的安裝文件生成器,但是使用 HM NIS Edit 腳本生成向?qū)傻哪_本并不具有很靈活的定制性。如果您需要更多特性,請(qǐng)閱讀 NSIS 用戶手冊(cè),您能從網(wǎng)上搜索到該手冊(cè)的中文版本。然后直接去修改 NSIS 腳本。
3. 用 NSIS 產(chǎn)生的卸載程序有可能會(huì)產(chǎn)生卸載不干凈的現(xiàn)象,主要原因是 NSIS 卸載程序不支持遞歸刪除目錄。如果您想要它把所有文件和目錄都刪除的話,就需要在 Section Uninstall 中將所有程序可能會(huì)生成的文件和目錄都添加進(jìn)去,這樣生成的卸載程序就能卸載全部文件和目錄了。
4. 您可以在這里找到更漂亮的圖文教程。