一個多月不寫博客了,不造大家有沒有想我,(別自戀了,寥寥無幾的粉絲,誰會想你),嗚嗚~~~
好了,廢話少敘,借用郭德綱老板的話,天兒不早了,干點正事兒吧!
一、序
Unity開發者都知道,打包出來的exe,是那種免安裝的應用程序,直接雙擊就能運行,這樣雖然簡單但是不利於我們向別人發布程序,
而且看起來很不正規。制作安裝程序的方式有很多,例如 inno , installshield,甚至rar壓縮程序都能制作安裝程序,關於inno和rar制作
安裝程序的方法請參考我的上一篇博客https://www.cnblogs.com/Jason-c/p/9872029.html ,inno自帶的模板比較簡單,容易上手,
但是實現比較復雜的功能的時候就得寫代碼了,比如:需要給安裝程序中添加依賴環境的時候,可以寫代碼添加依賴。但是,人都是有惰性的,
雖然我也是程序員,但是用一種從未接觸過的語言,編寫程序,心里還是很抵觸的。所以就轉而使用 installshield 了,installshield 包含有好多模板,
基本上好多參數都可以可視化的調整,而不需編寫代碼。但是這並不是說,installshield 什么時候都不需要用腳本控制了。而且 installshield 雖然
是可視化的參數,但是並不耽誤它依然存在很多的坑。這篇文章並不是一個詳細到如何建立工程都要啰里啰嗦一大堆的教程,但確實是筆者一步
一個坑踩過來的經驗之談,目的是讓讀者能在制作安裝程序“走投無路甚至懷疑人生的時候”,能夠豁然開朗,發現柳暗花明又一村的世外桃源。
二、通過 installshield 構建安裝程序所遇到的問題
2.1、選擇模板
網上很多教程都是推薦選擇 InstallSScript MSI Project ,說什么這個可以寫代碼控制,但是筆者並不認為這個模板有什么優勢,因為筆者本身
就是為了避免寫代碼,才從inno轉為使用installshield的,當然什么都不是絕對的,適合自己的才是最好的。
這里筆者還是建議選擇 Basic MSI Project,因為Basic MSI Project可以方便的隱藏那些你不想要的窗口:
在InstallSScript MSI Project模板中是沒有 Installation Inteview 這個頁面的,為了去掉安裝過程中那些不想要的頁面,
可能需要花費很大的力氣。
如:想去掉客戶信息這個頁面,
在Basic MSI Project模板中只需將Installation Inteview 頁面中的 Do you want to prompt users to enter their company name and user name?
設置為No 就能輕松隱藏。
2.2、添加外部依賴環境
有時候我們的程序可能會依賴一下底層的運行庫,如 VC++ Runtime , .net 等,可以通過installshield添加,同樣是不需要寫代碼的(正是
為了添加外部依賴環境,又不想寫代碼,筆者才從inno轉到installshield的)
打開installation designer 選擇Application data下的Redistributes,就可以盡情的添加依賴了。
需要注意的兩點是:
1、勾選依賴環境后,會自動從網上下載,而且下載可能需要翻牆。
2、直接勾選上以后,打包發布setup.exe后,~\PROJECT_ASSISTANT\SINGLE_EXE_IMAGE\DiskImages\DISK1 目錄下
的ISSetupPrerequisites文件夾存放的就是依賴環境,雙擊setup.exe 如果ISSetupPrerequisites文件夾不存在,就不從網上下載,
如果存在就直接安裝依賴環境了。
這樣的弊端也是很明顯的,在ISSetupPrerequisites文件夾丟失並且又沒網的時候,setup.exe就廢掉了,那么有沒有一種辦法
將ISSetupPrerequisites文件夾內的依賴文件直接打包進setup.exe 呢,當然是有辦法的,
選擇依賴環境,右鍵點擊屬性,將Build Location 設置為Extract From Setup.exe, 點擊應用,就可以了。
這的就可以了嗎?哈哈,當然不,你試過就知道,似乎並不好使。
接着再按下圖紅框圈住的地方設置為Extract From Setup.exe(原諒筆者懶得打字了),好使,試過才知道!
當然,設置了Extract From Setup.exe后是不能夠發布MSI的,只能發布exe
2.3、構建的setup.exe 去掉頁面中的InstallShield字樣
搞個安裝頁面,結果出現各種InstallShield的logo,真的讓人很煩,不過當然是有辦法去掉的。
簡答暴力的方法就行在 String Editor 中將所有的Installshield字樣都刪掉。
當然這個是個體力活兒,不過這個方法很好用呀。同理,你可以將其修改為任何你想要的字詞句段篇章。
而后,打開setup.exe,就能在setup頁面中看到你自己設置的詞了。
2.3、setup.exe 安裝完后瘋狂的彈出錯誤1905
安裝的時候瘋狂的彈出錯誤1905,無法注冊模塊。。。
卸載的時候瘋狂的彈出錯誤1905,無法撤銷注冊模塊。。。
這是因為你在添加文件夾時,選擇了Self-register all files,
解決方法就是重新導入需要的文件夾,不勾選Self-register all files。
2.4 修改頁面布局
修改安裝程序的背景圖片,修改顯示的文件等都可以在Dialogs中修改,其中All Dialogs就是安裝程序顯示的所有頁面,通過修改Behavior和Behavior下面的Dialog的參數完成修改的目的。
2.5 打包的時候報錯 ISDEV : fatal error 0:
這種error特別坑,沒有任何有效的提示,可能的原因是需要壓縮的文件或文件夾太大了。