我們經常會遇到這樣的問題:自己開發好了一個Winform系統,如何使之可以平穩的運行在沒有安裝.NET Framework 的操作系統上?這就涉及到打包和部署的內容,通過打包和部署形成安裝程序,實現WinForm應用軟件正常的安裝在客戶的操作系統上。另一方面同時需要考慮通過打包和部署形成卸載程序,將該應用軟件卸載掉,達到方便客戶使用的目的。
本章重點介紹Winform系統打包和部署的概念,通過實例介紹如何進行打包和部署的方法。
u
本章的學習目標:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
n
瞭解打包和部署的概念
n
掌握簡單打包和部署的方法
n
掌握複雜打包和部署的方法
8-1 Winform打包和部署介紹
本節學習目標:
n
瞭解Winform打包模式
n
瞭解部署項目應遵循的基本步驟
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />8-1-1 簡介
1.打包模式
爲應用程序打包有很多種方法,其中包括:
n
安裝程序文件(使用 Microsoft Windows 安裝程序)
n
CAB 文件項目
n
合併模塊
要將合併模塊添加至部署項目,請執行以下步驟:在「解決方案資源管理器」中選擇部署項目。單擊「項目」→「添加」→「合併模塊」。使用「添加模塊」對話框選擇要添加的合併模塊。
2.部署應用程序
可以使用下列其中一種方式部署 Winform 應用程序 :
n
運行安裝程序
n
使用 Internet 下載並部署 CAB 程序包
n
使用 XCOPY 將文件複製到目標文件夾中
n
使用系統管理服務器將應用程序部署到幾臺目標計算機上
8-1-2 創建部署項目
1.新建部署項目應遵循如下步驟:
(1).打開現有或新的 WindForms 應用程序
(2).單擊「文件」→「新建」→「項目」,打開「新建項目」對話框
(3).從「項目類型」列表中選擇「安裝和部署項目」文件夾(如圖8-1)
(4).在對話框右邊的「模板」列表中選擇所需的部署項目類型
不同的類型有:
n
安裝項目
n
Web 安裝項目
n
合併模塊項目
n
安裝嚮導
n
Cab 項目
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
![](http://static.javashuo.com/static/loading.gif)
圖
8-1
新建項目舉例
圖
2.可用於 Winform 應用程序的模板的說明
項目類型
|
說
明
|
安裝項目
|
用於爲 Winform 應用程序創建安裝程序
|
Web
安裝項目
|
Visual Studio.NET
還支持在 Web 服務器上部署。使用此方法在 Web 服務器上安裝文件將自動處理與註冊和配置相關的問題
|
合併模塊項目
|
可以由多個應用程序共享的程序包和組件。例如,如果應用程序有五個實用程序文件,則可以將它們打包到一個合併模塊項目中,然後合併到任何應用程序中
|
安裝嚮導
|
它是一個嚮導,指導用戶快速完成創建安裝程序的步驟。可以自定義安裝嚮導,以便在安裝期間添加更多文件或練習更多控件
|
Cab
項目
|
生成用於下載到 Web 瀏覽器的 Cab 文件
|
表8-1 安裝項目類型
8-2 簡單的打包和部署
本節學習目標:
n
配置應用程序文件夾
n
配置應用程序菜單
n
配置用戶桌面快捷文件
n
配置快捷文件圖標
n
配置卸載快捷文件的基本步驟
n
生成安裝卸載包文件
在安裝項目類型中,比較適合Winform 應用程序創建安裝程序部署的是表8-1的第一項。下面,我們通過實例學習怎麼進行簡單的Winform 應用程序的打包和部署。
8-2-1 案例學習:Visual Studio2005環境下建立簡單的打包和部署系統
1. 新建安裝部署項目
打開Visual Studio2005,點擊新建項目,選擇:其他項目類型->安裝與部署->安裝嚮導(安裝項目也一樣),然後點擊確定。詳見圖8-2所示。
![](http://static.javashuo.com/static/loading.gif)
圖
8-2
新建安裝部署項目示意
圖
2. 配置安裝系統文件
在點擊圖8-2的確定後,將進入到安裝系統文件的配置界面中,如圖8-3所示。
![](http://static.javashuo.com/static/loading.gif)
圖
8-3
安裝系統文件的配置界面圖
u
實驗步驟(1):
鼠標左鍵點擊「應用程序文件夾」,在打開的右側界面中單擊鼠標右鍵,在彈出的快捷菜單中選擇「添加」->「文件」,如圖8-4所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-4 創建可執行文件快捷方式示意圖
u
實驗步驟(2):
在打開的文件選擇界面中,添加某文件夾中具體的文件,這類文件主要包括兩種:.EXE文件或者是.dll文件。一般而言,一個C# Winform應用程序在Visual Studio2005平臺下開發的時候,會自動將這兩種文件生成在你的Winform應用程序所在目錄下的bin文件夾裏面的Debug子文件夾下面,其中.EXE爲可執行文件,而.dll文件的來源多是用戶自定義編輯的類庫文件,或者是第三方的動態鏈接庫文件,如果你的項目之中存在上述兩種情況,那麼請你務必將這些文件一併作爲打包文件放進來。我們以第二章應用軟件爲例進行打包,圖8-5爲最終找尋的.EXE文件或者是.dll文件所在之處。其實一個比較簡單的辦法就是,將你的Winform應用程序所在目錄下的bin文件夾裏面的Debug子文件夾下面的所有文件全部取來即可。這裏有一點提醒讀者的是:如果你的項目中有圖片或者其他多媒體文件,請你也一併將之選中,放在文件裏面。
![](http://static.javashuo.com/static/loading.gif)
圖8-5 選擇動態鏈接庫和可執行文件示意圖
選擇後的文件將出現在「應用程序文件夾」之中,如圖8-6所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-6 選擇可執行文件和動態鏈接庫文件後示意圖
鼠標右鍵單擊「應用程序文件夾」,選擇屬性窗口,在彈出的屬性窗口中將「defaultlocation」屬性路徑中的"[manufacturer]"去掉,不然的話做好的安裝程序默認安裝目錄會是「c:\programm file\你的用戶名\安裝解決方案稱」。
![](http://static.javashuo.com/static/loading.gif)
圖
8-7
刪除屬性
[
manufacturer
]
示意圖
u
實驗步驟(3):
在圖8-6基礎上,於右側欄目單擊鼠標右鍵,添加「文件夾」,併爲該文件夾取名爲img,如圖8-7所示。該img文件夾存儲系統的所有圖片文件,爲啓動和卸載文件分別增加快捷圖像做前期準備,類型必須爲.ICO文件(圖標文件)。
![](http://static.javashuo.com/static/loading.gif)
圖8-8 添加圖片文件夾示意圖
在點擊左側新建的img文件夾, 於右側欄目單擊鼠標右鍵,添加「文件」,從你的磁盤中選擇兩個.ICO文件(圖標文件)放置其中即可。如圖8-8所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-9 添加ICO圖片文件夾示意圖
u
實驗步驟(4):
本步驟對於卸載軟件系統至關重要,如果不添加將無法形成卸載你已經安裝的文件。請你再次於右側欄目單擊鼠標右鍵,添加「文件」,請你在c:\windows\system32文件夾下找尋一個叫msiexec.exe的文件,並將之添加到應用程序文件夾下面。該文件將負責執行卸載你安裝的軟件。如圖8-9所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-10 添加卸載可執行文件示意圖
u
實驗步驟(5):
本步驟將在應用程序文件中增加系統.Net FrameWork組件,如果不進行這一步,對於沒有安裝.Net FrameWork組件的操作系統,即便安裝了您的應用軟件,該系統也無法運行。
打開解決方案管理器,右擊你的解決方案名稱,選擇屬性:在打開的屬性頁中,選擇「系統必備」。如圖8-10,圖8-11所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-11 選擇安裝項目屬性示意圖
![](http://static.javashuo.com/static/loading.gif)
圖8-12 展開後的系統安裝包配置示意圖
在圖8-11展開的系統必備內容中,將.Net FrameWork2.0組件包和Windows Installer2.0組件包一併選中。如圖8-12所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-13 將.Net FrameWork2.0組件包和Windows Installer2.0組件包一併選中
u
實驗步驟(6):
截至步驟5,我們完成了對應用程序夾中全部文件的添加工作。本步驟將引導讀者開始配置左側導航條中的「用戶的程序菜單」。該菜單將出現在操作系統「開始」欄目的「程序」裏面。因此建議以文件夾形式出現,裏面包含執行程序和卸載程序兩個可執行文件的快捷方式文件。
u實驗步驟(6):
截至步驟5,我們完成了對應用程序夾中全部文件的添加工作。本步驟將引導讀者開始配置左側導航條中的「用戶的程序菜單」。該菜單將出現在操作系統「開始」欄目的「程序」裏面。因此建議以文件夾形式出現,裏面包含執行程序和卸載程序兩個可執行文件的快捷方式文件。
鼠標左鍵點擊「用戶的程序菜單」,在右側導航欄目中的空白處單擊鼠標右鍵,添加文件夾,假設我們給這個文件夾取名「警匪爭霸」。如圖8-13所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-14 「用戶的程序菜單」中建立文件夾
在「警匪爭霸」文件夾中單擊鼠標右鍵,選擇「創建新的快捷方式」。如圖8-14所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-15 創建新的快捷方式
在打開的創建新的快捷方式窗口中,選擇「應用程序文件夾」中的可執行文件(.exe文件)。這兩個文件分別是:WindowsApplication2.exe(項目可執行文件)和msiexec.exe(卸載軟件項目可執行文件)如圖8-15所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-16 添加快捷方式文件
在「應用程序文件夾」中,名稱不太適合安裝包的命名。請你將這兩個快捷方式分別更名爲假設的「警匪爭霸」和「卸載警匪爭霸」,如圖8-16所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-17 爲快捷方式文件重新命名
u
實驗步驟(7):
截至步驟6,我們完成了在開始欄目的程序中添加執行文件夾的任務。此次步驟我們將完成快捷方式文件的圖標配置工作。
鼠標右鍵單擊快捷文件「警匪爭霸」,在彈出菜單中選擇「屬性窗口」,在屬性窗口之中配置快捷文件「警匪爭霸」的icon屬性,選擇瀏覽。如圖8-17所示。
![](http://static.javashuo.com/static/loading.gif)
圖8-18 配置快捷文件「警匪爭霸」的icon屬性
在彈出的「圖標」對話框中,點擊瀏覽,尋找應用程序文件夾下面的img文件夾,選擇其中的一個ico圖標。如圖8-18所示。對於「警匪爭霸卸載」的快捷方式圖標的配置也是一樣。
![](http://static.javashuo.com/static/loading.gif)
圖8-19 選擇圖標文件
u
實驗步驟(8):
此次步驟我們將完成對卸載文件註冊表的配置工作。按照圖8-