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