製作PC端的安裝程式
一個多月不寫部落格了,不造大家有沒有想我,(別自戀了,寥寥無幾的粉絲,誰會想你),嗚嗚~~~
好了,廢話少敘,借用郭德綱老闆的話,天兒不早了,乾點正事兒吧!
一、序
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、勾選依賴環境後,會自動從網上下載,而且下載需要FQ。
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。