新建打包項目后,解決方案資源管理器中的結構如下:
Project Assistant界面如下:
在Project Assistant中按照步驟創建打包項目:
1、Application Information 中填寫公司名稱、產品名稱、版本號、網址的信息。
Application Information 左側窗口點擊 General Information 中設置其他信息,主要配置如下:
(1)General -> Setup Language:設置安裝語言
(2)General -> INSTALLDIR:設置安裝路徑
(3)General -> Fast Install:根據需要配置以便加速安裝速度
a、No system restore point is saved for this installation:沒有為這個程序保存系統恢復點
b、Perform only File Costing and skip checking other costs:僅執行文件花費和跳過檢查其他成本
c、Reduce the frequency of progress messages:降低進度條信息的頻率
(4)Summary Information Stream -> Require Administrative Privileges:設置管理員權限
將該項設為“Yes”。這樣設置之后,用戶就可以有管理員的權限去安裝該安裝文件了,避免用戶在安裝的時候出現權限不夠的問題。
(5)Add or Remove Programs -> Disable Change Button, Disable Remove Button, Disable Repair Button,這三個至少要有一個選為“NO”,全部設為“YES”的話,則在控制面板中,對應的軟件沒有“更改/刪除”的按鈕可以點擊,即在這里就卸載不了軟件了。
2、Installation Requirements:選擇程序運行的操作系統及需要的軟件
可選的軟件有Adobe Reader、.NET Framework、IE、Office等
3、Installation Architecture:可配置全部安裝,或是部分安裝
4、Application Files:添加要打包的文件
Destination Computer:右鍵 Show Predefined Folder 可選擇需要的文件夾,例如Font文件夾,將字體文件加入該文件夾,安裝時會自動安裝字體。
添加完文件后,全選文件,右擊,選中“Always Overwrite”。否則有時會出現重新安裝后,有些文件沒有被覆蓋。(InstallShield Limited edition沒有這項權限)
添加完文件后,還需要添加C:\Windows\System32\msiexec.exe,用於添加卸載程序的快捷方式。
5、Application Shortcuts:創建桌面和開始菜單的快捷方式
點擊左側的Shortcuts,可配置快捷方式的屬性信息。
卸載程序的快捷方式設置參數以實現卸載功能:Behavior -> Argument 設置為“/x {Product Code}”
6、Application Registry:添加注冊表
7、Installation Interview:配置安裝界面
Do you want to display a License Agreement Dialog:配置License界面
Do you want to prompt users to enter their Company Name and User Name:配置是否展示輸入公司名稱和用戶名稱的界面
Do you want your uses to be able to modify the installation location:配置用戶是否可以修改安裝路徑
Do you want users to be able to selectively install only certain parts:配置用戶是否可以選擇安裝的模塊
Do you want to give users the option to launch your application when the installation:配置用戶是否可以在安裝結束后選擇啟動應用程序
點擊左側的 Dialogs 可詳細配置安裝界面是否顯示及具體內容。
8、將需要的其他工具一起打包到安裝程序中:解決方案中 Specify Application Data -> Redistributables 可選擇要打包的程序
9、設置安裝程序的生成路徑及方式:解決方案中 Prepare for Release -> Releases
CD-ROM:可生成 msi、exe 安裝包。
若Build -> Compression的值為UnCompressed,則完整的安裝程序為program files文件夾+msi文件。
若Build -> Compression的值為Compressed,則完整的安裝程序為cab文件+msi文件。
SingleImage:只能生成 exe 安裝包,也可配置Build -> Compression。
CD-ROM 或 SingleImage 中選擇 Setup.exe -> InstallShield Prerequisites Location,設置為 Extract From Setup.exe
安裝程序的生成路徑為:\Express\CD_ROM\DiskImages\DISK1 或 \Express\SingleImage\DiskImages\DISK1
可在VS上方的工具欄中選擇生成方式。
打包過程中碰到的問題:
1、程序中有一個項目添加上后,打包就會失敗,后檢查發現是一個類中有一下未使用的代碼,屏蔽后就解決了。原因未知。
[System.Runtime.InteropServices.DllImport("user32.dll ")] static extern IntPtr GetWindowDC(IntPtr hWnd); [System.Runtime.InteropServices.DllImport("user32.dll ")] static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
2、使用快捷方式卸載軟件時,提示“安裝程序必須更新在系統運行時無法更新的文件或服務。如果選擇繼續,將需要重新啟動以安裝程序。”,點擊“確定”后,機器未重啟,軟件成功卸載。原因未知。
3、打包時要關閉打包程序下的DiskImages文件夾,否則會導致生成失敗。