2009-06-10 72 views
19

目前我們部署編譯ASP.Net應用程序通過在本地發佈網站,並通過電子郵件發送zip文件到系統管理員(通常)冗長的一套部署的說明。這是因爲我們第一次將ASP.Net應用程序部署到客戶端時,開發人員和測試IIS實例是相同的,我們無法將該站點兩次部署到同一臺計算機。這爲後續所有項目的部署奠定了基調。你用什麼方法將ASP.Net應用程序部署到野外?

我現在評價我們的部署方法和我在內置的部署工具專門找;特別是我正在查看自定義安裝任務並儘可能多地使用標準安裝程序功能(主要是用戶界面)。

其次,我期待在合併部署和自動更新。

你怎麼去在組織中部署sofware?你使用哪些工具,以及你經常遇到什麼問題?

+1

由於我發佈了這個原始問題,我發現了WiX。它是開源的,免費的。這也是Microsoft用於開發Office 2007部署包的原因。一旦您瞭解了基本知識,使用它似乎很容易,並且該界面允許您在安裝時選擇和選擇組件。 – Hooloovoo 2009-12-03 14:29:47

+0

只是一個更新;應用發佈自動化工具是專門爲此設計有一羣引人注目的工具在那裏尋找到我最常跨越5個專用網絡拆分工作比較https://en.wikipedia.org/wiki/Application_release_automation – 2016-06-27 20:56:19

回答

-2

部署Web應用程序使用複製Web工具 從微軟培訓工具包基於通訊簿Web開發
Web安裝項目
文本是有用的,如果你是衆多用戶提供了一個Web應用程序(例如,允許人們下載來自Web的應用程序並安裝它)。如果您負責爲組織更新特定的網站,那麼登錄到Web服務器並在每次更新時安裝Windows Installer程序包都是不切實際的。對於內部應用程序,您可以直接在Web服務器上編輯Web應用程序。但是,您所做的更改會立即在生產Web應用程序中實施,並且包含可能存在的任何錯誤。要使自己能夠測試Web應用程序,可以在計算機上編輯Web應用程序的本地副本,並使用「複製Web」工具將更改發佈到生產Web服務器。您還可以使用「複製Web」工具將更改從登臺服務器發佈到生產Web服務器,或任何兩臺Web服務器之間。複製Web工具可以將單個文件或整個網站複製到源網站或遠程網站,或從源網站和遠程網站複製。您還可以選擇同步文件,其中包括僅複製已更改的文件,並檢測可能的版本衝突,其中源和遠程站點上的相同文件已分別編輯。複製Web工具無法合併單個文件中的更改;只有完整的文件可以被複制。

+0

環境服務器。我們正在尋找一個可重複且容易部署的路徑,尤其是因爲我們無法訪問發佈或生產環境(部署路徑中的環境4和5)。所以基本上,我們正在部署到許多用戶。 :-) – Hooloovoo 2009-06-10 11:19:40

+0

http://msdn.microsoft.com/en-us/library/xay0wxbf(VS.80).aspx – MarkJ 2009-09-18 13:20:38

0

,我已經做了兩件事情是:

1)使用Web部署項目,以編譯和清理建設以及移交web.config部分,如果更換環境之間的配置變化。 2)使用楠來完成所有的建築物,歸檔和複製的以重複的方式。

Web部署項目最終創建一個MSBuild文件,可用於替代NAnt;然而,我來自Java背景,並且一直使用Ant,所以NAnt是我在.Net中的首選。如果添加了NAnt Contrib任務,則不僅可以部署這些文件,還可以處理諸如源代碼管理(包含它不屬於默認任務)和Sql Script Execution等項目以進行更改。

目前我使用這兩個選項在一起。我有我的NAnt構建文件通過MSBuild調用Web部署項目。通過爲每個環境配置管理器設置,它允許我自動管理web.config部分替換,並且仍然對我的複製和存檔發佈有相當好的控制。

希望這會有所幫助。

+0

目前我們使用JetBrains的TeamCity,並讓其他人設置構建腳本!它非常簡單,我們在CI服務器上使用MSBuild。我還使用Web部署項目來正確構建網站,但有時候可能會有點費力地讓它正確設置。 – Hooloovoo 2009-06-10 11:56:20

0

我們使用web部署項目和VS 2008項目來從webdeployment &其他項目的輸出創建.msi。一個名爲'setup'的普通Windows應用程序用於執行大量數據庫創建和初步工作,而不是嘗試使用自定義步驟自定義安裝項目。自己做這件事比試圖自定義MS代碼要容易得多。這個Windows應用程序然後調用用戶需要的正確的.msi文件。

團隊基礎構建每天晚上運行以重建解決方案並將所有內容複製到任何人都可以訪問的「發行CD」目錄,並在最新的「發行版」上進行測試。 說實話,TFS的構建對於像我們這樣的小團隊來說有點過分了,我只用它,因爲我習慣了。

在以前的公司,我們使用這個http://www.finalbuilder.com/,我可以推薦它以方便使用和支持的軟件數量。

1

1)MSBUILD建設項目

2)FTP文件到生產環境

3)複製/手動粘貼到每個Web服務器

0

對於內部網站,我們與SVN結合使用CruiseControl讓網站自動重建。

理論上,如果您可以將驅動器遠程映射到客戶端的Intranet,則可以通過VPN擴展此模型。或者一個更加快速和骯髒的解決方案可能是使用像SyncBack這樣的工具來同步包含爲該站點編譯的DLL的遠程文件夾。

3

我們有專用的DEV,TEST,STAGE和PRODUCTION服務器。

我們也有一個專門的生成機器運行巡航控制。

巡航控制配置爲持續集成構建,該構建在簽入代碼後運行。它還配置爲單獨的開發,質量保證,階段和生產任務。

要部署到開發中,首先從SVN中檢索代碼並構建,然後將「預編譯的Web」文件夾複製到開發網站,並將Web服務項目複製到開發應用程序服務器。巡航控制還被配置爲在構建開始之前對源代碼進行「標記」,以便我們稍後可以重新構建構建,或者如果我們需要做一個熱修復,則可以從標記分支。

要部署到QA,文件將從開發機器複製到QA機器。

同樣,要部署到舞臺,將文件從QA機器複製到舞臺機器。

最後,要部署到生產環境,這些文件將再次從舞臺機器複製到生產機器。

要配置每個環境,我們有一個自定義工具,它是修改連接字符串的每個環境的巡航控制任務的一部分,「debug = true | false」,「customErrors = Off | RemoteOnly」以及其他特定於環境的設置。

因此,每個環境都可以通過巡航控制儀表板上的按鈕進行部署。

一個需要注意的是,我們目前在巡航控制配置文件中配置了生產數據庫密碼......將它移動到其他地方會很好!

最後,讓我補充一點,即使我們的生產機器在專用主機設備中,服務器也可以從我們的Cruise Control機器訪問,這使得生產部署非常容易。唯一的手動步驟是加密web.config文件並刪除Cruise Control提供的「AppOffline.html」文件。

讓我知道如果這能幫助,或者如果您有任何疑問。

謝謝!

相關問題