程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC.net >> Visual C++.NET編程講座之八

Visual C++.NET編程講座之八

編輯:VC.net

  程序的安裝和部署

  摘要

  本文先來介紹安裝和部署前的准備,然後用向導創建一個安裝和部署項目,並修改項目的屬性,最後討論如何使用自己的標題圖像、添加"序列號"對話框及生成程序菜單項和桌面圖標。

  安裝和部署前的准備

  一旦應用程序項目開發好了之後,就要創建一個安裝程序供用戶進行安裝。早期的安裝程序大多數是使用InstallShield來制作的,InstallShield一個最大的特點是可以使用其內嵌的腳本語言InstallScript來定制自己的安裝過程和安裝界面。不過,現在我們還有一個更簡便的選擇,那就是使用Visual Studio .NET來創建程序安裝和部署項目。

  在將程序發布之前,我們需要將應用程序項目生成進行重新配置,即將原來默認的Debug(調試)版本變成了Release(發布)版本。具體步驟如下:

  (1) 啟動Visual Studio .NET,打開上一講的單文檔應用程序項目Viewer。

  (2) 打開"生成"菜單,單擊"配置管理器",彈出對話框。

  (3) 在"活動的解決方案配置"中選擇"Release",結果如圖1所示。


圖1 "配置管理器"對話框

  (4) 單擊"關閉"按鈕。打開"生成"菜單,單擊"生成解決方案"。生成完後,關閉該解決方案。

  需要說明的是,在用MFC應用程序向導創建的項目中,可以有Win32 Debug和Win32 Release兩個版本。這兩個版本的區別是:Debug版本的運行程序有相應的調試信息代碼,而Release版本的運行程序則沒有,但Release版本的運行程序經過代碼的優化,其程序的運行速度被最大加速。因此一般來說,當用戶在將開發的應用程序發布給用戶之前,應將項目調試後將其編譯成Win32 Release版本。編譯和生成後的有關文件被放置在項目名文件夾下的Release子文件夾中。對於Debug版本,其編譯和生成後的有關文件被放置在Debug子文件夾中。

  創建一個安裝和部署的項目

  Visual Studio.NET不僅提供了創建基於Windows 或基於Web的應用程序和組件的安裝程序的工具,也提供了創建用於下載的.Cab 文件的工具。與InstallShield不同的是,Visual Studio.NET使用Microsoft Windows Installer來提供程序安裝和配置的功能。

  Visual Studio.NET為用戶安裝和部署項目提供四種類型的模板:合並模塊項目、安裝項目、Web 安裝項目和 Cab 項目。此外還提供了兩個安裝程序向導,可幫助我們完成創建部署項目的過程。下面我們使用安裝向導來創建一個安裝項目。

  (1) 打開"文件"菜單,選擇"新建"->"項目",彈出"新建項目"對話框。

  (2) 單擊左側的項目類型"安裝和部署項目",選擇右側的"安裝向導"模板,輸入項目名稱"ViewerSetup",指定一個項目位置,如圖2所示。


圖2 "新建項目"對話框

  (3) 單擊"確定"按鈕,出現如圖3所示的對話框。


圖3 向導"第1步"對話框

  (4) 單擊"下一步"按鈕,出現如圖4所示的對話框。這裡,可以選擇安裝項目類型以及重新發布的打包類型。


圖4 向導"第2步"對話框

  (5) 保留默認的選項,單擊"下一步"按鈕,出現向導"第3步"對話框。單擊"添加"按鈕,在彈出的"添加文件"對話框中,將前面的Viewer應用程序可執行文件添加進來,結果如圖5所示。


圖5 向導"第3步"對話框

  (6) 單擊"下一步"按鈕,出現如圖6所示的對話框,顯示出我們在前面幾個步驟中作出的選擇內容。


圖6 向導"第4步"對話框

  (7) 單擊"完成"按鈕,系統開始創建。需要說明的是,單擊"上一步"按鈕可對前面的操作進行修改。

  (8) 打開"項目",選擇"添加"->"合並模塊",選定用於MFC應用程序本地化支持的兩個模塊,一個是MFC_Loc_FE.msm(東南亞地方)和VC_MFC.msm(MFC的支持),單擊"打開"按鈕。

  生成和測試

  (1) 打開"生成"菜單,單擊"生成解決方案",系統就會在指定項目位置下的"ViewerSetup\Debug"中為該安裝項目生成一個ViewerSetup.msi安裝文件。

  (2) 在解決方案資源管理器中,右擊頂層節點"ViewerSetup",從彈出的快捷菜單中單擊"安裝",啟動Windows Installer,進行應用程序的安裝過程。開始出現的是安裝"歡迎"對話框,如圖7所示。


圖7 "歡迎"對話框

  (3) 單擊"下一步"按鈕,進入"選擇安裝文件夾"對話框,如圖8所示。


圖8 "選擇安裝文件夾"對話框

  (4) 單擊"下一步"按鈕,進入"確認安裝"對話框,如圖9所示。


圖9 "確認安裝"對話框

  (5) 單擊"下一步"按鈕,系統開始安裝,並顯示安裝進度,最後顯示安裝完成對話框,如圖10所示。


圖10 "安裝完成"對話框

  (6) 單擊"關閉"按鈕,退出安裝。這就是ViewerSetup默認的安裝過程。

  修改項目屬性

  (1) 在解決方案資源管理器中,單擊頂層目錄的"ViewerSetup"。在屬性窗口中出現如圖11所示的屬性。


圖11 項目屬性

  具體屬性含義可參見MSDN中的說明,需要注意的是:

  1、為保證UpgradeCode、PackageCode和ProductCode三種屬性值的唯一性,最好保留其默認值。

  2、在Windows資源管理器中選定某安裝程序文件(.msi),右擊鼠標,從彈出的快捷菜單中選擇"屬性"命令,則Author、Description、Keywords和Subject等屬性顯示在其屬性對話框的"摘要"標簽頁上。而在應用程序安裝後,屬性Author、Description、Manufacturer、ManufacturerUrl、SupportPhone和SupportUrl顯示在"支持信息"對話框中,如圖12所示,該內容可從系統的"添加/刪除程序"對話框中相應程序的"查看支持信息"得到。


圖12 "支持信息"對話框

  (2) 在屬性窗口中,將Author屬性內容改為"丁有和"。Author用來指定應用程序或組件的作者名或聯系人。

  (3) 將Manufacturer屬性內容改為"計算機編程維護與技巧 雜志社"。Manufacturer用來指定應用程序或組件的開發公司或發行商。

  (4) 將ManufacturerUrl屬性內容改為"www.comprg.com.cn",ManufacturerUrl用來指定Manufacturer的網址。

  (5) 將ProductName屬性內容改為" 文本浏覽器 "(注意文本前後要留有空格)。ProductName用來指定在目標計算機上安裝應用程序或組件時用於描述該應用程序或組件的公共名稱。默認為部署項目的名稱。

  (6) 將Subject屬性內容設為"文本浏覽器"。Subject用來指定在目標計算機上安裝應用程序或組件時用於描述該應用程序或組件的其他信息。

  (7) 將Title屬性內容改為"文本浏覽器"。Title用來指定安裝程序的標題。默認情況下,Title屬性與部署項目的名稱相同。

  (8) 右擊解決方案管理器頂層目錄ViewerSetup,從彈出的快捷菜單中選擇"重命名",鍵入"文本浏覽器 安裝"後按Enter鍵。

  (9) 打開"生成"菜單,單擊"重新生成解決方案"。

  (10) 打開"項目"菜單,單擊"安裝",看看出現的界面的變化。

  使用自己的標題圖像

  "標題圖像"是用來顯示在安裝對話框中的位於標題欄下方的圖像,它是寬度為 500 像素、高度為 70 像素的位圖。下面就來改變對話框中的安裝標題圖像。

  (1) 打開Windows中的"畫圖"工具,並將其圖像大小設置為500 x 70。

  (2) 在最右側添加一個用於產品標識的圖像(自己構造),結果如圖13所示,將該位圖保存到Banner.bmp文件中。


圖13 制作標題位圖

  (3) 在Visual Studio .NET中,打開"項目"菜單,選擇"添加"->"文件",將剛才創建的Banner.bmp文件添加當前安裝項目中。

  (4) 打開"視圖"菜單,選擇"編輯器"->"用戶界面",在窗口中顯示出"用戶界面"編輯器,如圖14所示。


圖14 "用戶界面"編輯器

  在"用戶界面"編輯器中,安裝過程中所出現的對話框均在這裡以"樹視圖"形式顯示出來。用戶界面分為"一般安裝"和"管理員安裝"兩大類。"一般安裝"用於最終用戶運行安裝程序時將顯示的對話框,"管理員安裝"部分用於系統管理員將安裝程序上載到網絡位置時將顯示的對話框。

  (5) 單擊"歡迎使用",將在屬性窗口中出現這個對話框的屬性,其中BannerBitmap屬性用來指定對話框的標題圖像的。

  (6) 在屬性窗口中,單擊BannerBitmap屬性欄右側的下拉按鈕,從彈出的列表中選擇"(浏覽…)",出現如圖15所示的對話框。


圖15 "選擇項目中的項"對話框

  (7) 雙擊"應用程序文件夾",出現前面添加的標題圖像文件Banner.bmp,選中它,單擊"確定"按鈕。這樣,該對話框的標題圖像就設置好了。類似的,還可以為其他所有的對話框進行設置。

  (8) 重新生成並安裝,結果出現的"歡迎使用"對話框如圖16所示。


圖16 定制後的"歡迎使用"對話框

  添加"序列號"驗證對話框

  程序安裝時往往需要序列號為限制非法安裝,下面就來實現。

  (1) 在"用戶界面"編輯器中,右擊"安裝"下的"啟動"節點,從彈出的快捷菜單中選擇"添加對話框",出現如圖17所示的對話框。


圖17 "添加對話框"

  (2) 由於"序列號"是產品的一種客戶信息,因此我們單擊"客戶信息",然後單擊"確定"按鈕。

  (3) 在"用戶界面"編輯器中,將"客戶信息"節點拖放到"歡迎使用"與"安裝文件夾"之間。

  (4) 在"客戶信息"屬性窗口中,將BannerBitmap屬性修改為"Banner.bmp"。

  (5) 將SerialNumberTemplate屬性修改成"<?????-?????>"。SerialNumberTemplate屬性決定文本框在對話框中的顯示方式,並確定是僅對序列號的格式進行驗證,還是按照 Windows 安裝程序算法對序列號進行驗證。SerialNumberTemplate屬性的有效可編輯字符可以是"#?%^<>",其中#表示要求輸入一個數字,該數字將不包括在驗證算法中。%表示要求輸入一個數字,該數字將包括在驗證算法中。?表示要求輸入一個字母數字字符,該字符將不包括在驗證算法中。^表示要求輸入一個大寫字母或一個數字。<和>表示該字符左邊或右邊的所有字符在對話框中都不可見。
  (6) 將ShowSerialNumber屬性設置為True,結果如圖18所示。


圖18 修改的"客戶信息"屬性

  (7) 這樣,重新生成安裝後,出現如圖19所示的"客戶信息"對話框。


圖19 "客戶信息"對話框

  需要說明的是,若自己驗證序列號,也就是說序列號等於某個字符串,則需要進行自定義操作。由於自定義操作需要更多的底層代碼,因此這裡不作討論。

  生成程序菜單項和桌面圖標

  在Windows中運行程序的最常用快捷方式是在程序中創建菜單項或在桌面中創建快捷圖標。下面就來創建。

  1. 生成程序菜單項

  (1) 在"文件系統"編輯器中,右擊"用戶的'程序'菜單",彈出快捷菜單,將鼠標指針指向菜單中的"添加",彈出子菜單,單擊子菜單中的"文件夾"。將該文件夾名稱改為"文本浏覽器"。

  (2) 單擊"文本浏覽器",在右側列表視圖窗口處右擊鼠標,彈出快捷菜單,單擊"創建新的快捷方式"。彈出如前面的圖15所示的"選擇項目中的項"對話框。

  (3) 在對話框中,雙擊"應用程序文件夾",然後單擊"Viewer.exe",單擊"確定"按鈕。

  (4) 單擊創建的快捷方式"Viewer.exe 的快捷方式",在屬性窗口中將Name屬性改成"運行 文本浏覽器"。

  (5) 在屬性窗口中,單擊Icon屬性右則的下拉按鈕,從中選擇"(浏覽…)",在彈出的"圖標"對話框中,單擊"浏覽"按鈕,在"選擇項目中的項"對話框中,選中"應用程序文件夾"後,單擊右側的"添加文件",將Viewer項目文件夾中的Viewer.ico文件添加。

  (6) 單擊Viewer.ico,再單擊"確定"按鈕。此時"圖標"對話框如圖20所示。


圖20 "圖標"對話框

  (7) 單擊"當前圖標"中的圖標,然後單擊"確定"按鈕,這裡屬性窗口中的屬性變成如圖21所示的內容。


圖21 修改後的程序快捷方式屬性

  需要說明的是:

   Arguments屬性用來為所選的自定義操作指定命令行參數。僅適用於.exe自定義操作。

   ShowCmd屬性用來為通過快捷方式啟動的應用程序指定窗口狀態(正常vsdscNormal、最小化vsdscMinimized或最大化vsdscMaximized)。

   Target屬性用來指定目標計算機上由快捷方式啟動的應用程序的路徑和文件名。

   Transitive屬性用來確定在目標計算機上安裝或重新安裝應用程序或組件時,安裝程序是否重新計算選定的文件夾、文件、注冊表鍵或注冊表值的Condition屬性。此屬性是一項高級功能,應謹慎使用,一般使用其默認值False。

   WorkingFolder屬性用來指定文件夾的名稱,在目標計算機上的該文件夾中安裝選定快捷方式的目標應用程序。

  (8) 在左側單擊"文本浏覽器",將其AlwaysCreate屬性設為True。

  (9) 重新生成安裝後,在"開始"菜單中的"所有程序中"中出現如圖22所示的程序菜單。


圖22 安裝後的程序菜單項

  2. 創建桌面圖標

  (1) 在"文件系統"編輯器中,單擊"用戶桌面",將其AlwaysCreate屬性設為True。

  (2) 在編輯器的右側窗口處,右擊鼠標,從彈出快捷菜單中選擇"創建新的快捷方式"。彈出如前面的圖15所示的"選擇項目中的項"對話框。

  (3) 在對話框中,雙擊"應用程序文件夾",然後單擊"Viewer.exe",單擊"確定"按鈕。

  (4) 單擊創建的快捷方式"Viewer.exe 的快捷方式",在屬性窗口中將Name屬性改成"文本浏覽器"。

  (5) 單擊"文本浏覽器"。在屬性窗口中,將Icon屬性設為Viewer.ico文件中的圖標。

  (6) 重新生成並安裝。

  結束語

  本講重點討論了程序的安裝和部署,一旦安裝項目制作好以後就可以在項目文件夾下Debug中的文件制成安裝盤。在本講座中,我們領略了用Visual C++ .NET進行應用程序開發的一般過程,從中可以發現其功能的強大,當然要想更加深入地使用該工具,還應在實踐中不斷磨練。不過,這裡還有強調的是,一定要用Visual C++ .NET做一個項目。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved