亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

.Net應用程序打包部署總結

2019-11-17 03:13:55
字體:
來源:轉載
供稿:網友
.Net應用程序打包部署總結

編譯源代碼并完成測試以后,開發過程其實并沒有結束。在這個極端,需要把應用程序提供給用戶。無論是asp.net應用程序,客戶端應用程序還是 Compact Framework構建的應用程序,開發出來的軟件都必須部署到目標環境中。.NET Framework的部署工作比以前容易得多了,因為不再需要注冊COM組件也不需要編寫新的注冊表配置但愿。

記得以前安裝程序的時候,經常需要安裝注冊表項什么的,.NET完全不需要操作注冊表。

部署過程中,最大的問題就是第三庫的依賴問題的解決。開發人員的計算機上可能提前安裝了用于開發的第三方的類庫,比如我們做圖形處理的經常需要用到 opencv類庫或者emgucv類庫,但是目標計算機上一般不會安裝這些第三方類庫。這樣在部署的時候就需要在目標計算機上安裝相應的類庫。部署過程對 于大型應用程序可能非常復雜,就像我們玩的使命召喚的部署,或者Visual Studio的部署,在部署的過程中還可以選擇哪些組件可以安裝,哪些組件不可以安裝等操作。

本文主要是簡要的介紹一下部署的基本方法,起到一個拋磚引玉的作用,要是想寫出非常強大的部署功能,還需要學習更多的文檔和資料。

.NET中的部署分類:

1. XCopy

XCopy允許把一個程序集或者一組程序集復制到目標計算機應用程序文件夾中,從而減少開發時間。.NET程序集是自我包含的(元數據描述了包含在程序集中的內容),因為不需要在注冊表中進行注冊。

每個程序集都跟蹤他需要執行的其他程序集,因此,在默認情況下,程序集會在當前應用程序文件夾中查找依賴項。這就是為什么當我們的程序引用了第三方的程序集的時候,把第三方程序集放在應用程序文件夾下就可以正確的運行,及時將應用程序移動到其他的計算機上。

2. 發布Web站點

在發布Web站點之前,會編譯整個站點,然后復制到指定的位置。編譯后的站點,不包含任何源代碼。

3. 部署項目

部署項目就是我們經常用的安裝程序的方式。VS2010可以為應用程序創建安裝程序?;赪indows Installer技術有四種選擇:

創建合并模塊

為客戶端應用程序創建安裝程序

為Web應用程序創建安裝程序

為基于智能設備的應用程序創建安裝程序

創建cab文件,用過windows moblie操作系統的都知道,那個系統中的安裝程序都是cab文件,還有就是在win ce系統中也是使用cab安裝文件。

4. ClickOnce技術

ClickOnce技術可以構建自動升級的,基于Windows的應用程序。

ClickOnce允許把應用程序發布到Web站點,文件共享,或者CD上。對應用程序進行升級或者更新版本以后,開發小組可以把他們發布到相同的位置或者站點上,最后用戶在使用應用程序的時候,應用程序會自動檢查是否有最新版本,如果有就進行更新。

接下來詳細介紹每種部署方式。

部署方式介紹

一. XCopy部署

XCopy部署就是把一組文件復制到目標計算機上的一個文件夾中,然后在客戶端執行應用程序。無論程序集的數目是多少,如果把文件復制到同一個文件夾中,應用程序就可以執行。不需要配置設置或注冊表。

簡單的說,XCopy部署就是把程序集復制到目標計算機上,就可以部署功能完善的應用程序。使用這種方法對可以部署的程序集的大小咩有限制。

XCopy部署的缺點:不能把程序集放到全局程序集緩存(GAC)中,不能在開始菜單中添加圖標,如果程序依賴某種類型的COM庫,就不能很容易的注冊COM組件。

二. 發布Web站點

XCopy也可以用于Web應用程序的發布。建立虛擬目錄,把Web應用程序文件復制到虛擬目錄即可。

Web項目的另一個部署選項是發布Web站點,發布Web站點就是預編譯整個站點,并將編譯好的版本放在指定的位置,VS中有發布Web站點的用戶向導,根據向導提示就可以進行操作了。

發布Web站點的優點是速度快,安全性高。速度快是因為所有的程序集都已經編譯過了。

三. Visual Studio 2010安裝和部署項目

XCopy使用起來非常簡單,但是缺乏一些功能。Visual Studio 2010提供了6個安裝程序項目類型。有4個是基于 Windows Installer技術。

如圖所示的安裝項目類型。

.Net應用程序打包部署總結

Setup PRoject會部署項目到文件夾結構中,而Web Setup Project會部署項目到Web服務器的虛擬目錄中。

在創建包含在多個部署項目中的組件或者功能庫時,一般使用Merge Module Project,通過創建合并模塊,可以設置專用于組件的配置項,而無需在主項目的創建過程中擔心他們。

3.1 Windows Installer簡介

Windows Installer是一個服務,負責管理在大多數的 windows操作系統上安裝、更新、修復和刪除應用程序。

Windows Installer在數據庫中跟蹤應用程序的安裝,在卸載應用程序的時候,Windows Installer和內容以跟蹤和刪除已經添加的注冊表設置和復制到硬盤上的文件,以及已經添加的桌面圖標和開始菜單中的圖標。如果注冊表設置或與應用程 序相關的DLL被不小心刪除了,就可以修復安裝。在修復的過程中,安裝程序會從上一次安裝中讀取數據庫,并重制該安裝過程。

如果需要更多的更空,就應該查看Windows Installer SDK, 他是Platform SDK的一部分,其中包含了為應用程序創建自動以安裝軟件包的文檔。

3.2 創建安裝程序

創建安裝包的第一個任務是:標識應用程序需要的所有外部資源,寶庫配置文件,COM組件,第三方類庫,控件和圖像資源等。

這里首先介紹如何在獨立的解決方案中創建安裝程序項目。然后介紹在原來的解決方案中創建安裝程序項目。

我們這里使用的例子,都是一個基于Adaboost人臉檢測的程序,這個程序使用了Emgucv的第三方類庫。

3.2.1 在獨立的解決方案中創建安裝項目

在開始創建部署項目之前,要確保部署的應用程序有一個發布版本,即Release版本。

新建Setup Project 項目,填寫相關信息,如圖:

.Net應用程序打包部署總結

然后可以看到這樣的界面:

.Net應用程序打包部署總結

在“‘Solution Explorer”中右擊項目選擇Add,選擇Assembly.如圖

.Net應用程序打包部署總結

添加本項目需要的程序集。選擇了已經Release好了的FaceDetectTest.exe, 然后可以看到,在Detected Dependencies部分,Vs給出了這個可執行文件需要的程序集依賴。這樣Vs會自動的包含程序集。依賴程序集如圖:

.Net應用程序打包部署總結

接著需要確定把程序集部署到用戶計算機什么地方。

單擊左側列表的樹根,然后在空白地方右擊鼠標,可以選擇添加特殊的文件夾,可以根據自己的需要添加相應的特殊文件夾。這里我們添加了GAC文件夾。但是添加到GAC文件夾中的程序集必須有強命。添加GAC以后,把GAC需要放置的程序集拖進去。

接下來,用戶可以再桌面或者開始菜單添加快捷方式。就需要把快捷方式拖放到相應的文件夾。

要創建桌面快捷方式,進入application文件夾,右擊Application文件夾中的需要創建快捷方式的程序,如圖

.Net應用程序打包部署總結

選擇“Create Shortcut to FaceDetectTest.ext”, 然后會生成一個這個應用程序的快捷方式。如圖

.Net應用程序打包部署總結

然后將這個快捷方式文件拖放到User's Desktop文件夾中,這樣,在安裝程序的時候,就會在用戶的桌面顯示一個程序的快捷方式。

.Net應用程序打包部署總結

然后Build整個項目就可以獲得安裝文件了。

3.2.2 在同一個解決方案中創建安裝項目

上面的部署方式有幾個缺點:例如,當心的程序集添加到原始應用程序匯總,部署項目不會自動的識別任何改動的地方,而必須手動的添加新的程序集,然后 再次鹽城心的依賴項,包含依賴項。如果在包含幾十個或者上百個應用程序集的應用程序中,這樣就很難維護了。VS提供了一個簡單的解決方案,吧部署項目包含 在應用程序的解決方案中,這樣就可以把主項目的輸出作為部署程序集了。

在原來的解決方案中,添加一個新的Project, 選擇Setup Project。如圖

.Net應用程序打包部署總結

上面的安裝程序通過Add->Assemblies添加程序集,這次我們通過Add->Project Output添加程序集。如圖

.Net應用程序打包部署總結

在彈出的窗口中,選擇要添加部署的項目,然后選擇"Primary Output",如圖

.Net應用程序打包部署總結

這包括構建應用程序時的輸出和所有依賴項。選擇Configuration 為Release x86

系統仍然會自動檢測到依賴項和主輸出:

.Net應用程序打包部署總結

剩下的操作和上面的創建安裝項目的操作一樣。

就可以獲得安裝程序文件。

這種方法的優點:當把新的項目添加到解決方案中,在原來的工程中添加一個新的引用,部署項目會自動的選擇新的程序集,無需我們做任何工作。

四. ClickOnce部署

ClickOnce是一種允許應用程序自動升級的部署技術。應用程序發布到共享文件、Web站點或其他媒介,如果后來程序發布者對程序進行了升級,ClickOnce會自動檢測程序版本進行升級,無需用戶干涉。

ClickOnce還解決了安全權限問題,一般情況下,要安裝應用程序,用戶需要由管理權限。而利用ClickOnce,用戶只要有運行應用程序所需的最低絕對權限,就可以安裝和運行應用程序。

發布ClickOnce應用程序的方法:

右擊需要創建ClickOnce安裝方法的項目,選擇屬性,看到如下界面

.Net應用程序打包部署總結

選擇Publish,

.Net應用程序打包部署總結

ClickOnce應用程序的發布,需要和IIS服務器配合操作。

這里我把ClickOnce應用程序放到了本地IIS服務器上

.Net應用程序打包部署總結

然后點擊Publish.

然后就可以通過瀏覽器訪問地址進行應用程序安裝了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久免费视频这里只有精品| 日韩大陆欧美高清视频区| 精品一区二区三区三区| 亚洲国产日韩一区| 亚洲曰本av电影| 久久91精品国产91久久久| 日韩www在线| 国产va免费精品高清在线| 2019亚洲男人天堂| 日本欧美精品在线| 亚洲在线视频观看| 中日韩美女免费视频网站在线观看| 97在线视频免费| 欧美成人亚洲成人日韩成人| 亚洲欧美国产精品| 96sao精品视频在线观看| 欧美日本国产在线| 亚洲国产一区二区三区四区| 日韩欧美在线网址| 成人免费看黄网站| 在线亚洲欧美视频| 热99在线视频| 国产精品天天狠天天看| 亚洲日本成人女熟在线观看| 777国产偷窥盗摄精品视频| 欧美精品日韩三级| 国产99久久久欧美黑人| 性夜试看影院91社区| 在线视频中文亚洲| 九九热这里只有精品6| 国产精品网址在线| 久久99亚洲精品| 亚洲视频专区在线| 欧美电影第一页| 亚洲理论片在线观看| 一区二区欧美日韩视频| 8050国产精品久久久久久| 日韩久久精品成人| 欧美激情视频一区二区| 欧美高跟鞋交xxxxhd| 亚洲自拍另类欧美丝袜| 国产精品99久久99久久久二8| 亚洲mm色国产网站| 久久国产一区二区三区| 啪一啪鲁一鲁2019在线视频| 亚洲精品成人网| 亚洲a一级视频| 国产亚洲精品美女| 成人精品视频在线| 日韩中文av在线| 亚洲男子天堂网| 亚洲激情中文字幕| 欧美日韩人人澡狠狠躁视频| 色噜噜狠狠狠综合曰曰曰88av| 97在线精品视频| 久久人人爽亚洲精品天堂| 激情av一区二区| 性亚洲最疯狂xxxx高清| 国产97在线观看| 国产精品久久久久久久美男| 亚洲最大福利网站| 国产成人啪精品视频免费网| 亚洲高清色综合| 国产91九色视频| 日韩av影院在线观看| 精品久久久久久久大神国产| 日韩av片永久免费网站| 555www成人网| 欧美性猛交xxxx富婆弯腰| 美女扒开尿口让男人操亚洲视频网站| 91精品久久久久久久久久久久久| 最近中文字幕mv在线一区二区三区四区| 91精品国产综合久久香蕉的用户体验| 久久精品亚洲热| 国产噜噜噜噜噜久久久久久久久| 亚洲精品国产精品国自产在线| 国产精品久久久久77777| 96sao精品视频在线观看| 久久久久久久久国产| 欧美成人sm免费视频| 精品久久久久久久久中文字幕| 国产精品对白刺激| 欧美另类老女人| 欧美日韩在线观看视频| 欧美日韩亚洲一区二| 色综合天天狠天天透天天伊人| 日韩中文有码在线视频| 国产精品极品美女在线观看免费| 久久九九免费视频| 久久国产精品网站| 国产玖玖精品视频| 国产一区二区三区久久精品| 成人妇女淫片aaaa视频| 亚洲香蕉伊综合在人在线视看| 日韩国产高清视频在线| 亚洲女性裸体视频| 欧美成人久久久| 成人福利网站在线观看11| 国产精品人成电影| 午夜精品视频在线| 97精品在线视频| 久久久国产一区| 欧美另类在线播放| 久久亚洲精品一区二区| 久久久www成人免费精品张筱雨| 91精品国产综合久久香蕉最新版| 视频一区视频二区国产精品| 日韩一中文字幕| 91麻豆国产语对白在线观看| 色视频www在线播放国产成人| 日韩av网站大全| 国产在线一区二区三区| 亚洲一区二区黄| 成人美女av在线直播| 欧美日韩第一页| 久久成人精品视频| 日本一本a高清免费不卡| 最近2019好看的中文字幕免费| 日韩精品福利在线| 亚洲女人被黑人巨大进入al| 亚洲精品一区av在线播放| 日韩av在线直播| 久久久久久国产精品久久| 裸体女人亚洲精品一区| 欧美性生交xxxxx久久久| 欧美成人免费va影院高清| 高潮白浆女日韩av免费看| 亚洲电影av在线| 中文国产成人精品久久一| 欧美日韩国产综合视频在线观看中文| 国产精品第一视频| 91精品国产综合久久香蕉922| 国产精品一区二区三| 国产成人久久久精品一区| 亚洲а∨天堂久久精品9966| 亚洲片在线资源| 国内免费久久久久久久久久久| 日韩av免费一区| 亚洲欧美成人精品| 国产精品视频一区国模私拍| 91禁外国网站| 91豆花精品一区| 日韩理论片久久| 欧美成人精品一区二区三区| 性欧美视频videos6一9| 欧美最猛性xxxx| 日韩一区在线视频| 久久久久久国产精品美女| 亚洲国语精品自产拍在线观看| 精品无人区乱码1区2区3区在线| 91国产精品电影| 成人有码在线播放| 一个人看的www久久| zzijzzij亚洲日本成熟少妇| 亚洲欧美日韩一区二区在线| 国产精品久久婷婷六月丁香| 久久精品国产亚洲7777| 九九热这里只有在线精品视| 久久天天躁狠狠躁夜夜躁2014| 日韩免费观看视频| 日韩欧美精品中文字幕| 自拍亚洲一区欧美另类| 久久久最新网址| 欧美午夜精品久久久久久浪潮|