2010年4月20日 星期二

製作安裝程式測試

一直以來,我都是用著Wise 9.02來製作安裝程式,但由於此版本過於老舊,因此像是Unicode、圖示等問題,都只能使用其他方式處理,幾年前曾經測過Wise 4(可能版本號太多,所以版本號又重頭開始),但因為無法正常做出一個安裝程式,試了老半天最後放棄。

隨著Vista、Win7出來,Wise 9.02越來越無法使用,像是安裝後無法在桌面上產生圖示的問題,因此這幾天決定將市面上能找到的安裝程式製作軟體全部進行測試,找出一套可以符合需求並且能解決一些奇怪問題的系統。



測試重點
  1. 支援繁體中文
  2. 支援Win7桌面上建立捷徑
  3. 安裝程式執行結束後可呼叫執行檔
  4. 支援安裝中文路徑
  5. 安裝畫面可調整
測試的系統
  1. Install Shield:看到這尊大佛高達500mb容量,就直接先跳過了。
  2. Smart Install Maker:各項功能都符合,致命點是安裝的時候他的層級一定要程式集\公司名稱\程式名稱,另外資料夾名稱會檢查是否有保留字,所以中文名稱有用到*\這些保留字就用不了,所以放棄。
  3. Inno Setup:只能用Script的方式編寫,我不曉得誰有那閒功夫去慢慢了解他所有的Script的寫法,重點是最後可能發現無法符合需求。
  4. nsis2.46:完全不曉得在做什麼。
  5. Setup2Go 1.911:不支援Vista以上,畫面無法修改文字,一定要選語系,無法使用
  6. CreateInstall 5.6:不支援繁體中文字。
  7. InstallConstruct 7 :看起來好像不錯,但畫面調整起來不太順,找不到暗黑程式,所以也用不了。
  8. Setup Specialist 2002:畫面無法調整。
  9. Install Creator:用起來各項功能都可以,但是產生的安裝檔居然不能包含有Install、Setup的字眼,如果有這些字眼,則桌面上不會產生圖示。
  10. Quick Install Maker: 在windows 2003上連裝都不能裝
  11. Setup Factory:所有我要的功能都符合,還有下面優點:
  • 畫面調整後可立即Preview,不用編譯製作出安裝檔再觀看是否有問題
  • 提供非常多國家Language,但不是指介面,是指再製作安裝檔時,如果選擇繁體中文,畫面他會自動幫你顯示成繁體中文畫面,節省不少時間。
  • 提供很多的Skin供你選用。
  • 可直接用勾選的方式選擇系統要再哪邊建立捷徑
  • 非常好上手,如果只是想測試大約一分鐘就能打包一個安裝程式出來觀看結果
  • 可打包VS.NET 3.5
  • 支援Win7、Vista、2008 Server
      一些小問題
  • 某些畫面第一個中文字會糊掉,要注意一下,解決方式是在中文字前面空一格
  • 打包速度較慢
  • 目錄不支援中文,一樣是保留字問題,但由於他有強的Script系統,因此我去找了他下一步的事件,在事件中找到了以下Script
-- These actions are performed when the Next button is clicked.
-- get the text from the combo box
strShortcutFolder = DlgComboBox.GetProperties(CTRL_COMBOBOX_SHORTCUTFOLDERS).Text;
-- if the shortcut folder path is empty, display a message
 -- if it isn't empty, check for invalid characters and advance to the next screen

if String.Length(strShortcutFolder) == 0 then
-- the field is empty...
-- come on user, don't be shy :)
local strTitle = SetupData.GetLocalizedString("MSG_INVALID_ENTRY");
local strPrompt = SetupData.GetLocalizedString("ERR_FIELD_CANNOT_BE_EMPTY");
Dialog.Message(strTitle, strPrompt, MB_OK, MB_ICONEXCLAMATION);
else
-- the field's not empty...
-- make sure the shortcut folder path contains only valid characters for a relative path
if g_ContainsValidRelativePathChars(strShortcutFolder) then
-- advance to the next screen
Screen.Next();
else
-- the shortcut folder contains invalid characters
-- tell the user to smarten up :)
local strTitle = SetupData.GetLocalizedString("MSG_INVALID_ENTRY");
local strPrompt = SetupData.GetLocalizedString("ERR_INVALID_CHARACTERS") .. "\r\n/ * ? \" < >
:";
Dialog.Message(strTitle, strPrompt, MB_OK, MB_ICONEXCLAMATION);
end
end
意思就是不如果目錄不為空值的時候系統就檢查是否包含保留字,因此我就將檢查那段拿掉,也就可正常運作了
感想
以前就曾經有兩次花時間去找可以製作安裝檔的程式,但每次都沒找到真正可用的,而且沒做記錄每次都重找一次,這次特別作個記錄,包含測試過的軟體跟版本,如果未來還要找,可依此參考,原本Setup Factory第一次是測7版,7版功能已經很完整,但有個奇怪的問題,就是當選擇只為目前的使用者安裝捷徑時,桌面捷徑在Win7就跑不出來,一定要選為所有使用者安裝捷徑桌面才會出現捷徑,我一直懷疑桌面捷徑這問題,一定是微軟搞的鬼,不然怎麼會每一套系統都有相同的問題,甚至我用API直接寫一支程式在執行完,自動產生捷徑,並且丟到桌面都沒辦法,還好他到了8版的時候解決了這個問題,而且看起來也解決了捷徑圖示殘留的問題。
捷徑殘留的問題也不曉得微軟在做什麼,這麼多年了,都未見修改這個問題,只要程式一用上一種圖示,在裝過的電腦上,永遠也擺脫不了那張圖。
暗黑程式
http://www.crackfound.com/crack.cgi

沒有留言:

張貼留言