之前因為工作的需要,要研究一下安裝包的製作過程。發現除了專業的安裝包製作工具以外,其實Visual Studio自己本身也附帶了安裝包製作功能,而且使用起來簡單明了,更重要的是,只要安裝了Visual Studio,就自動擁有了這個工具。下面是Google到的一片教程,記錄一下。
Visual Studio.NET所帶的Setup Project可以幫您將您的.NET應用程式打包成msi安裝程式。以下是如何在安裝程式中增加讓使用者輸入個人資訊和註冊碼的方法,以及如何編程擷取這些資料的方法。
[如何在MSI安裝程式中讓使用者輸入個人資訊和註冊碼]
1)建立項目:在“New Project”對話方塊中選擇“Setup and Deployment Projects”中的Setup Project。
2)添加檔案:
a)項目建立好以後,右擊項目根節點,在快顯功能表中選擇“View->File System”
b)在彈出的“File System”視窗中,右擊Application Folder,選擇“Add->Files…”,添加你的exe、dll檔案及其他資源檔。
3)添加Customer Information對話方塊:
a)右擊項目根節點,在快顯功能表中選擇“View->User Interface”
b)在彈出的“User Interface”視窗中,右擊“Install->Start”,在快顯功能表中選擇“Add Dialog”
c)在彈出的“Add Dialog”視窗中,選擇Customer Information。
做到這一步,安裝程式運行時就會出現介面提示使用者輸入Name、Organization以及Serial Number。
[如何將編程讀取使用者輸入的個人資訊和註冊碼]
以上三項資料在整個安裝committed以後會被一直存放到註冊表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData索引值下,你可以根據ProductCode搜尋您自己的產品所在的子鍵。這裡的ProductCode可以在安裝項目的項目屬性中查看,是一個GUID。Name、Organization以及Serial Number分別存放在RegOwner、RegCompany和ProductID中,直接讀取即可。
另外,您也可以在安裝未結束時即讀取這些資訊。具體的做法請參考MSDN中對System.Configuration.Install.Installer類的相關說明。
PS:根據之前我的記憶,製作安裝包輸入密碼的時候,似乎是使用#號作為密碼的,就是說實際輸入密碼的時候,只有在存在#位置上的碼字才會參與密碼的驗證。而且貌似驗證機制是將#位置上的數字相加,看是否是7的整數倍。