Visual Studio 2010部署Windows應(yīng)用程序
原創(chuàng)【51CTO獨家譯稿】序言
在Visual Studio過去的一些版本中,你只能使用“安裝向?qū)?rdquo;來部署你的應(yīng)用程序。在***的版本中,微軟對ClickOnce模型做了一些調(diào)整,以鼓勵開發(fā)者使用這個模型。在Visual Studio 2010中,通過ClickOnce你可以很輕松地部署你的應(yīng)用程序。那么,具體應(yīng)該怎樣做呢?請繼續(xù)閱讀本文,我們接下來將會為您講述具體的步驟:
步驟1:通過解決方案資源管理器發(fā)布一個項目
在解決方案資源管理器中,右鍵單擊那個你想要部署的項目。然后,你會看到一個可以“Publish”你的項目的選項。選擇這個選項就可以啟動one-click向?qū)Я恕?/p>
步驟2:選擇你要部署的應(yīng)用程序的發(fā)布位置
這個向?qū)右院?,它會提示你:你想把你的軟件發(fā)布到哪里。實際上,你有很多的選擇,不止局限于你的硬盤驅(qū)動器。你可以發(fā)布到一個文件共享服務(wù)器上,也可以通過ftp發(fā)布到互聯(lián)網(wǎng)上,甚至可以直接發(fā)布到Web站點上。微軟那帶有“魔力”的自動化功能可以搞定必須要一起發(fā)布的所有依賴程序集。在這個例子中,我們使用默認的設(shè)置。
步驟3:選擇用戶安裝這個應(yīng)用程序的方式
接下來這個步驟可以給你提供很大的靈活性,因為這個步驟可以讓你指定用戶安裝這個應(yīng)用程序的方式。
由于有了互聯(lián)網(wǎng)和其他的網(wǎng)絡(luò)媒介,你不再局限于必須通過物理介質(zhì)來安裝應(yīng)用程序了。雖然你可以選擇了“From a Website”,但是你只能使用IIS,如下圖所示。就像它說明的那樣,在部署這個應(yīng)用程序的機器上,你必須安裝IIS6或更高的版本,并且,你還必須是那臺機器的管理員。
如果你剛好有一個IIS站點,并且你還是管理員,那么你可以把它輸入到“Specify the URL”域中。點擊“Next”以后,這個向?qū)崾灸氵@個應(yīng)用程序是否只能在線使用,或者說,這個應(yīng)用程序是否還可以直接在用戶的機器上運行(離線)
當(dāng)然,你也可以通過一個CD來安裝這個應(yīng)用程序,這是默認的選項。在我們的例子中,我們保留了這個選項,所以我們可以把這個應(yīng)用程序打包到一個zip文件中,然后把這個文件發(fā)送給用戶。
步驟4:這個應(yīng)用程序從哪里檢查更新
Click-Once的一個優(yōu)勢是它提供了軟件更新機制,這就是說,無論何時,當(dāng)一個新的修訂版本可用的時候,用戶都可以輕松地更新他們的軟件。在我們的例子中,我們選擇了發(fā)布到一個Web站點,所以我們可以檢查更新。
步驟5:我們已經(jīng)完成了!
***一個界面會告訴我們要部署的文件會被發(fā)布到哪里,以及這個應(yīng)用程序在客戶機器上的行為。
如果你點擊了“Finish”按鈕,那么在你的機器上,包含你的部署文件的文件夾會自動彈出來。如果你要通過CD來安裝你的應(yīng)用程序,它甚至可以給你提供一個autorun文件,只要把這張CD放入光驅(qū),它就會自動地安裝你的應(yīng)用程序了。
你可能也注意到了,發(fā)布你的應(yīng)用程序會在你的項目中添加一個擴展名是pfx的文件。這個文件是一個Authenticode Certificate。實際上,它就是大家熟悉的“self-cert”,它可以發(fā)揮作用,但是它無法識別出你是一個發(fā)布者。你必須要從Thawte 或 Verisign獲取更安全的證書才可以。但是,對于我們的目標(biāo)來說,一個“self-cert”已經(jīng)足夠了。要更深入地了解ClickOnce的簽名機制,可以參考MSDN上的這篇文章:http://msdn.microsoft.com/en-us/library/aa730868%28VS.80%29.aspx
理解部署結(jié)構(gòu)
ClickOnce不只是創(chuàng)建了一個一次性的安裝解決方案。它還可以檢查更新,在客戶端實時地更新你的應(yīng)用程序,這樣的話,用戶就可以通過ClickOnce機制獲得修訂和變更的好處了。使用ClickOnce,你可以選擇更新策略。這個策略可以決定ClickOnce檢查更新的方式。如果你在步驟4種選擇了檢查更新,那么,在你的發(fā)布目錄中,.application文件將會包含下面這個小節(jié):
- <deployment install="true" mapFileExtensions="true">
- <subscription>
- <update>
- <beforeApplicationStartup />
- </update>
- </subscription>
- <deploymentProvider codebase="http://www.microgold.com/TestDeployment.application" />
- </deployment>
這個策略會告訴這個應(yīng)用程序,應(yīng)該在應(yīng)用程序啟動以前檢查更新。如果存在一個更新,它會下載這個更新,然后再啟動這個應(yīng)用程序。那么,還有其他的可用策略嗎?
你可以讓運行中的應(yīng)用程序每10個小時檢查一次更新。如果有一個更新可用,會在用戶下次運行這個應(yīng)用程序的時候提示用戶進行更新。
- <subscription>
- <update>
- <expiration maximumAge="10" unit="hours" />
- </update>
- </subscription>
如果你的要求是只讓高于某個版本的用戶安裝這個更新,你可以在ClickOnce的.application配置文件中添加下面這個deployment標(biāo)簽
- <deployment install="true" minimumRequiredVersion="5.1.0.0"> >
- <subscription>
- <update>
- <beforeApplicationStartup />
- </update>
- </subscription>
- <deploymentProvider codebase="http://www.microgold.com/TestDeployment.application" />
- </deployment>
注意:每次你通過Visual Studio發(fā)布一個項目的時候,它都會自動地為你創(chuàng)建一個新的修訂版本。例如,下面那個1.0.0.1版本的文件夾就是自動生成的(在文件夾名字中的數(shù)字分別代表主版本號,次版本號,內(nèi)部版本號,和修訂版本號)。.application文件將指向***的修訂版本文件夾(TestDeployment_1_0_0_1)。
TestDeployment_1_0_0_1文件夾將會包含***的程序集。實際上,如果我們把TestDeployment.exe.deploy重命名為TestDeployment.exe,就可以運行這個應(yīng)用程序了。如果這個項目存在依賴程序集,它們也會被部署到這個文件夾中(同樣,也是以.deploy作為擴展名),注意,每個修訂版本都有自己的.application文件。這可以讓你為不同的修訂版本指定不同的部署策略。
.manifest文件包含你正在部署的程序集的屬性(attribute)。它還包含重要的安全信息(在部署平臺上,這個程序集必須要獲得的權(quán)限)。.manifest文件還包含發(fā)布者的標(biāo)識和強名簽名
總結(jié)
如果你的應(yīng)用程序發(fā)布了,那么用戶就可以通過運行setup文件來安裝這個應(yīng)用程序了。這個應(yīng)用程序可以按照你在.application文件中設(shè)置的更新策略自動地檢查更新。Visual Studio提供的這些強大的特性可以讓部署.NET應(yīng)用程序快如閃電,而且,持續(xù)地對應(yīng)用程序進行更新也變得更加輕松了。
原文標(biāo)題:Deploying Windows Applications using Visual Studio 2010
【編輯推薦】