免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Visual C .NET編程講座之八
程序的安裝和部署

  摘要

  本文先來(lái)介紹安裝和部署前的準(zhǔn)備,然后用向?qū)?chuàng)建一個(gè)安裝和部署項(xiàng)目,并修改項(xiàng)目的屬性,最后討論如何使用自己的標(biāo)題圖像、添加"序列號(hào)"對(duì)話(huà)框及生成程序菜單項(xiàng)和桌面圖標(biāo)。

  安裝和部署前的準(zhǔn)備

  一旦應(yīng)用程序項(xiàng)目開(kāi)發(fā)好了之后,就要?jiǎng)?chuàng)建一個(gè)安裝程序供用戶(hù)進(jìn)行安裝。早期的安裝程序大多數(shù)是使用InstallShield來(lái)制作的,InstallShield一個(gè)最大的特點(diǎn)是可以使用其內(nèi)嵌的腳本語(yǔ)言InstallScript來(lái)定制自己的安裝過(guò)程和安裝界面。不過(guò),現(xiàn)在我們還有一個(gè)更簡(jiǎn)便的選擇,那就是使用Visual Studio .net來(lái)創(chuàng)建程序安裝和部署項(xiàng)目。

  在將程序發(fā)布之前,我們需要將應(yīng)用程序項(xiàng)目生成進(jìn)行重新配置,即將原來(lái)默認(rèn)的Debug(調(diào)試)版本變成了Release(發(fā)布)版本。具體步驟如下:

  (1) 啟動(dòng)Visual Studio .NET,打開(kāi)上一講的單文檔應(yīng)用程序項(xiàng)目Viewer。

  (2) 打開(kāi)"生成"菜單,單擊"配置管理器",彈出對(duì)話(huà)框。

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


圖1 "配置管理器"對(duì)話(huà)框

  (4) 單擊"關(guān)閉"按鈕。打開(kāi)"生成"菜單,單擊"生成解決方案"。生成完后,關(guān)閉該解決方案。

  需要說(shuō)明的是,在用MFC應(yīng)用程序向?qū)?chuàng)建的項(xiàng)目中,可以有Win32 Debug和Win32 Release兩個(gè)版本。這兩個(gè)版本的區(qū)別是:Debug版本的運(yùn)行程序有相應(yīng)的調(diào)試信息代碼,而Release版本的運(yùn)行程序則沒(méi)有,但Release版本的運(yùn)行程序經(jīng)過(guò)代碼的優(yōu)化,其程序的運(yùn)行速度被最大加速。因此一般來(lái)說(shuō),當(dāng)用戶(hù)在將開(kāi)發(fā)的應(yīng)用程序發(fā)布給用戶(hù)之前,應(yīng)將項(xiàng)目調(diào)試后將其編譯成Win32 Release版本。編譯和生成后的有關(guān)文件被放置在項(xiàng)目名文件夾下的Release子文件夾中。對(duì)于Debug版本,其編譯和生成后的有關(guān)文件被放置在Debug子文件夾中。
創(chuàng)建一個(gè)安裝和部署的項(xiàng)目

  Visual Studio.net不僅提供了創(chuàng)建基于Windows 或基于Web的應(yīng)用程序和組件的安裝程序的工具,也提供了創(chuàng)建用于下載的.Cab 文件的工具。與InstallShield不同的是,Visual Studio.NET使用Microsoft Windows Installer來(lái)提供程序安裝和配置的功能。

  Visual Studio.NET為用戶(hù)安裝和部署項(xiàng)目提供四種類(lèi)型的模板:合并模塊項(xiàng)目、安裝項(xiàng)目、Web 安裝項(xiàng)目和 Cab 項(xiàng)目。此外還提供了兩個(gè)安裝程序向?qū)?,可幫助我們完成?chuàng)建部署項(xiàng)目的過(guò)程。下面我們使用安裝向?qū)?lái)創(chuàng)建一個(gè)安裝項(xiàng)目。

  (1) 打開(kāi)"文件"菜單,選擇"新建"->"項(xiàng)目",彈出"新建項(xiàng)目"對(duì)話(huà)框。

  (2) 單擊左側(cè)的項(xiàng)目類(lèi)型"安裝和部署項(xiàng)目",選擇右側(cè)的"安裝向?qū)?模板,輸入項(xiàng)目名稱(chēng)"ViewerSetup",指定一個(gè)項(xiàng)目位置,如圖2所示。


圖2 "新建項(xiàng)目"對(duì)話(huà)框

  (3) 單擊"確定"按鈕,出現(xiàn)如圖3所示的對(duì)話(huà)框。


圖3 向?qū)?第1步"對(duì)話(huà)框

  (4) 單擊"下一步"按鈕,出現(xiàn)如圖4所示的對(duì)話(huà)框。這里,可以選擇安裝項(xiàng)目類(lèi)型以及重新發(fā)布的打包類(lèi)型。


圖4 向?qū)?第2步"對(duì)話(huà)框

  (5) 保留默認(rèn)的選項(xiàng),單擊"下一步"按鈕,出現(xiàn)向?qū)?第3步"對(duì)話(huà)框。單擊"添加"按鈕,在彈出的"添加文件"對(duì)話(huà)框中,將前面的Viewer應(yīng)用程序可執(zhí)行文件添加進(jìn)來(lái),結(jié)果如圖5所示。


圖5 向?qū)?第3步"對(duì)話(huà)框

  (6) 單擊"下一步"按鈕,出現(xiàn)如圖6所示的對(duì)話(huà)框,顯示出我們?cè)谇懊鎺讉€(gè)步驟中作出的選擇內(nèi)容。


圖6 向?qū)?第4步"對(duì)話(huà)框

  (7) 單擊"完成"按鈕,系統(tǒng)開(kāi)始創(chuàng)建。需要說(shuō)明的是,單擊"上一步"按鈕可對(duì)前面的操作進(jìn)行修改。

  (8) 打開(kāi)"項(xiàng)目",選擇"添加"->"合并模塊",選定用于MFC應(yīng)用程序本地化支持的兩個(gè)模塊,一個(gè)是MFC_Loc_FE.msm(東南亞地方)和VC_MFC.msm(MFC的支持),單擊"打開(kāi)"按鈕。


  生成和測(cè)試

  (1) 打開(kāi)"生成"菜單,單擊"生成解決方案",系統(tǒng)就會(huì)在指定項(xiàng)目位置下的"ViewerSetup\Debug"中為該安裝項(xiàng)目生成一個(gè)ViewerSetup.msi安裝文件。

  (2) 在解決方案資源管理器中,右擊頂層節(jié)點(diǎn)"ViewerSetup",從彈出的快捷菜單中單擊"安裝",啟動(dòng)Windows Installer,進(jìn)行應(yīng)用程序的安裝過(guò)程。開(kāi)始出現(xiàn)的是安裝"歡迎"對(duì)話(huà)框,如圖7所示。


圖7 "歡迎"對(duì)話(huà)框

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


圖8 "選擇安裝文件夾"對(duì)話(huà)框

  (4) 單擊"下一步"按鈕,進(jìn)入"確認(rèn)安裝"對(duì)話(huà)框,如圖9所示。


圖9 "確認(rèn)安裝"對(duì)話(huà)框

  (5) 單擊"下一步"按鈕,系統(tǒng)開(kāi)始安裝,并顯示安裝進(jìn)度,最后顯示安裝完成對(duì)話(huà)框,如圖10所示。


圖10 "安裝完成"對(duì)話(huà)框

  (6) 單擊"關(guān)閉"按鈕,退出安裝。這就是ViewerSetup默認(rèn)的安裝過(guò)程。
修改項(xiàng)目屬性

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


圖11 項(xiàng)目屬性

  具體屬性含義可參見(jiàn)MSDN中的說(shuō)明,需要注意的是:

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

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


圖12 "支持信息"對(duì)話(huà)框

  (2) 在屬性窗口中,將Author屬性?xún)?nèi)容改為"丁有和"。Author用來(lái)指定應(yīng)用程序或組件的作者名或聯(lián)系人。

  (3) 將Manufacturer屬性?xún)?nèi)容改為"計(jì)算機(jī)編程維護(hù)與技巧 雜志社"。Manufacturer用來(lái)指定應(yīng)用程序或組件的開(kāi)發(fā)公司或發(fā)行商。

  (4) 將ManufacturerUrl屬性?xún)?nèi)容改為"www.comprg.com.cn",ManufacturerUrl用來(lái)指定Manufacturer的網(wǎng)址。

  (5) 將ProductName屬性?xún)?nèi)容改為" 文本瀏覽器 "(注意文本前后要留有空格)。ProductName用來(lái)指定在目標(biāo)計(jì)算機(jī)上安裝應(yīng)用程序或組件時(shí)用于描述該應(yīng)用程序或組件的公共名稱(chēng)。默認(rèn)為部署項(xiàng)目的名稱(chēng)。

  (6) 將Subject屬性?xún)?nèi)容設(shè)為"文本瀏覽器"。Subject用來(lái)指定在目標(biāo)計(jì)算機(jī)上安裝應(yīng)用程序或組件時(shí)用于描述該應(yīng)用程序或組件的其他信息。

  (7) 將Title屬性?xún)?nèi)容改為"文本瀏覽器"。Title用來(lái)指定安裝程序的標(biāo)題。默認(rèn)情況下,Title屬性與部署項(xiàng)目的名稱(chēng)相同。

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

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

  (10) 打開(kāi)"項(xiàng)目"菜單,單擊"安裝",看看出現(xiàn)的界面的變化。

 使用自己的標(biāo)題圖像

  "標(biāo)題圖像"是用來(lái)顯示在安裝對(duì)話(huà)框中的位于標(biāo)題欄下方的圖像,它是寬度為 500 像素、高度為 70 像素的位圖。下面就來(lái)改變對(duì)話(huà)框中的安裝標(biāo)題圖像。

  (1) 打開(kāi)Windows中的"畫(huà)圖"工具,并將其圖像大小設(shè)置為500 x 70。

  (2) 在最右側(cè)添加一個(gè)用于產(chǎn)品標(biāo)識(shí)的圖像(自己構(gòu)造),結(jié)果如圖13所示,將該位圖保存到Banner.bmp文件中。


圖13 制作標(biāo)題位圖

  (3) 在Visual Studio .net中,打開(kāi)"項(xiàng)目"菜單,選擇"添加"->"文件",將剛才創(chuàng)建的Banner.bmp文件添加當(dāng)前安裝項(xiàng)目中。

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


圖14 "用戶(hù)界面"編輯器

  在"用戶(hù)界面"編輯器中,安裝過(guò)程中所出現(xiàn)的對(duì)話(huà)框均在這里以"樹(shù)視圖"形式顯示出來(lái)。用戶(hù)界面分為"一般安裝"和"管理員安裝"兩大類(lèi)。"一般安裝"用于最終用戶(hù)運(yùn)行安裝程序時(shí)將顯示的對(duì)話(huà)框,"管理員安裝"部分用于系統(tǒng)管理員將安裝程序上載到網(wǎng)絡(luò)位置時(shí)將顯示的對(duì)話(huà)框。

  (5) 單擊"歡迎使用",將在屬性窗口中出現(xiàn)這個(gè)對(duì)話(huà)框的屬性,其中BannerBitmap屬性用來(lái)指定對(duì)話(huà)框的標(biāo)題圖像的。

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


圖15 "選擇項(xiàng)目中的項(xiàng)"對(duì)話(huà)框

  (7) 雙擊"應(yīng)用程序文件夾",出現(xiàn)前面添加的標(biāo)題圖像文件Banner.bmp,選中它,單擊"確定"按鈕。這樣,該對(duì)話(huà)框的標(biāo)題圖像就設(shè)置好了。類(lèi)似的,還可以為其他所有的對(duì)話(huà)框進(jìn)行設(shè)置。

  (8) 重新生成并安裝,結(jié)果出現(xiàn)的"歡迎使用"對(duì)話(huà)框如圖16所示。


圖16 定制后的"歡迎使用"對(duì)話(huà)框

添加"序列號(hào)"驗(yàn)證對(duì)話(huà)框

  程序安裝時(shí)往往需要序列號(hào)為限制非法安裝,下面就來(lái)實(shí)現(xiàn)。

  (1) 在"用戶(hù)界面"編輯器中,右擊"安裝"下的"啟動(dòng)"節(jié)點(diǎn),從彈出的快捷菜單中選擇"添加對(duì)話(huà)框",出現(xiàn)如圖17所示的對(duì)話(huà)框。


圖17 "添加對(duì)話(huà)框"

  (2) 由于"序列號(hào)"是產(chǎn)品的一種客戶(hù)信息,因此我們單擊"客戶(hù)信息",然后單擊"確定"按鈕。

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

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

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


圖18 修改的"客戶(hù)信息"屬性

  (7) 這樣,重新生成安裝后,出現(xiàn)如圖19所示的"客戶(hù)信息"對(duì)話(huà)框。


圖19 "客戶(hù)信息"對(duì)話(huà)框

  需要說(shuō)明的是,若自己驗(yàn)證序列號(hào),也就是說(shuō)序列號(hào)等于某個(gè)字符串,則需要進(jìn)行自定義操作。由于自定義操作需要更多的底層代碼,因此這里不作討論。
 生成程序菜單項(xiàng)和桌面圖標(biāo)

  在Windows中運(yùn)行程序的最常用快捷方式是在程序中創(chuàng)建菜單項(xiàng)或在桌面中創(chuàng)建快捷圖標(biāo)。下面就來(lái)創(chuàng)建。

  1. 生成程序菜單項(xiàng)

  (1) 在"文件系統(tǒng)"編輯器中,右擊"用戶(hù)的‘程序‘菜單",彈出快捷菜單,將鼠標(biāo)指針指向菜單中的"添加",彈出子菜單,單擊子菜單中的"文件夾"。將該文件夾名稱(chēng)改為"文本瀏覽器"。

  (2) 單擊"文本瀏覽器",在右側(cè)列表視圖窗口處右擊鼠標(biāo),彈出快捷菜單,單擊"創(chuàng)建新的快捷方式"。彈出如前面的圖15所示的"選擇項(xiàng)目中的項(xiàng)"對(duì)話(huà)框。

  (3) 在對(duì)話(huà)框中,雙擊"應(yīng)用程序文件夾",然后單擊"Viewer.exe",單擊"確定"按鈕。

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

  (5) 在屬性窗口中,單擊Icon屬性右則的下拉按鈕,從中選擇"(瀏覽…)",在彈出的"圖標(biāo)"對(duì)話(huà)框中,單擊"瀏覽"按鈕,在"選擇項(xiàng)目中的項(xiàng)"對(duì)話(huà)框中,選中"應(yīng)用程序文件夾"后,單擊右側(cè)的"添加文件",將Viewer項(xiàng)目文件夾中的Viewer.ico文件添加。

  (6) 單擊Viewer.ico,再單擊"確定"按鈕。此時(shí)"圖標(biāo)"對(duì)話(huà)框如圖20所示。


圖20 "圖標(biāo)"對(duì)話(huà)框

  (7) 單擊"當(dāng)前圖標(biāo)"中的圖標(biāo),然后單擊"確定"按鈕,這里屬性窗口中的屬性變成如圖21所示的內(nèi)容。


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

  需要說(shuō)明的是:

   Arguments屬性用來(lái)為所選的自定義操作指定命令行參數(shù)。僅適用于.exe自定義操作。

   ShowCmd屬性用來(lái)為通過(guò)快捷方式啟動(dòng)的應(yīng)用程序指定窗口狀態(tài)(正常vsdscNormal、最小化vsdscMinimized或最大化vsdscMaximized)。

   Target屬性用來(lái)指定目標(biāo)計(jì)算機(jī)上由快捷方式啟動(dòng)的應(yīng)用程序的路徑和文件名。

   Transitive屬性用來(lái)確定在目標(biāo)計(jì)算機(jī)上安裝或重新安裝應(yīng)用程序或組件時(shí),安裝程序是否重新計(jì)算選定的文件夾、文件、注冊(cè)表鍵或注冊(cè)表值的Condition屬性。此屬性是一項(xiàng)高級(jí)功能,應(yīng)謹(jǐn)慎使用,一般使用其默認(rèn)值False。

   WorkingFolder屬性用來(lái)指定文件夾的名稱(chēng),在目標(biāo)計(jì)算機(jī)上的該文件夾中安裝選定快捷方式的目標(biāo)應(yīng)用程序。

  (8) 在左側(cè)單擊"文本瀏覽器",將其AlwaysCreate屬性設(shè)為T(mén)rue。

  (9) 重新生成安裝后,在"開(kāi)始"菜單中的"所有程序中"中出現(xiàn)如圖22所示的程序菜單。


圖22 安裝后的程序菜單項(xiàng)

  2. 創(chuàng)建桌面圖標(biāo)

  (1) 在"文件系統(tǒng)"編輯器中,單擊"用戶(hù)桌面",將其AlwaysCreate屬性設(shè)為T(mén)rue。

  (2) 在編輯器的右側(cè)窗口處,右擊鼠標(biāo),從彈出快捷菜單中選擇"創(chuàng)建新的快捷方式"。彈出如前面的圖15所示的"選擇項(xiàng)目中的項(xiàng)"對(duì)話(huà)框。

  (3) 在對(duì)話(huà)框中,雙擊"應(yīng)用程序文件夾",然后單擊"Viewer.exe",單擊"確定"按鈕。

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

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

  (6) 重新生成并安裝。

  結(jié)束語(yǔ)

  本講重點(diǎn)討論了程序的安裝和部署,一旦安裝項(xiàng)目制作好以后就可以在項(xiàng)目文件夾下Debug中的文件制成安裝盤(pán)。在本講座中,我們領(lǐng)略了用Visual C++ .net進(jìn)行應(yīng)用程序開(kāi)發(fā)的一般過(guò)程,從中可以發(fā)現(xiàn)其功能的強(qiáng)大,當(dāng)然要想更加深入地使用該工具,還應(yīng)在實(shí)踐中不斷磨練。不過(guò),這里還有強(qiáng)調(diào)的是,一定要用Visual C++ .NET做一個(gè)項(xiàng)目。(全文完)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Windows系統(tǒng)中被遺忘的操作技巧
全國(guó)專(zhuān)業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試試題 (轉(zhuǎn)1) - 心語(yǔ) 的日志 - 網(wǎng)易博客
怎么在Word里插入背景音樂(lè)
如何發(fā)布普通VC程序
從創(chuàng)建一個(gè)應(yīng)用程序到制作一個(gè)安裝包的詳細(xì)過(guò)程
手把手教你用C#打包應(yīng)用程序(安裝程序)【卸載模塊已添加】
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服