2012-10-19 91 views
4

我們的主網站是10個獨立的ASP.NET項目和應用程序的集合。目前,要在全新的服務器上完成部署,需要運行10個獨立的msdeploy作業;每個應用程序都是構建,配置(使用配置轉換)和打包的,但我們沒有任何解決方案將所有軟件包作爲單個操作進行部署。將多個解決方案/項目轉變爲單個msdeploy包的建議?

我可以看到幾個可能性,可能工作在這種情況下,但很想從任何人聽到誰成功 - 或者失敗 - 在建立類似的東西:

  1. 的文件夾全包和deploy.cmd腳本,以及一個「主腳本」,它將依次調用每個單獨的應用程序腳本並將該應用程序部署到目標服務器。

  2. 使用登臺服務器,我們使用生產配置從TeamCity部署每個包的最新版本,然後使用msdeploy將該服務器捕獲到一個巨大的msdeploy ZIP包中,然後將其部署到每個生產服務器上一個單獨的msdeploy步驟。

  3. 創建一個龐大的Visual Studio解決方案,引用我們代碼庫中的EVERY項目(可能通過svn:externals?),編譯並交叉引用它們,因此支持使用單個msbuild作業來創建巨大的單片包含我們整個代碼庫的軟件包,它是從源代碼管理中的最新版本構建的,並針對目標環境進行配置。

我研究Troy Hunt's excellent "You're Deploying it Wrong" series,並Scott Hanselman's "Web Deployment Made Awesome"文章,但我想我在尋找的東西超出了這兩種方法了採用多種項目和應用程序的步驟,而不必從源代碼構建他們在一個單一的步驟 - 有任何想法嗎?

回答

2

我們在我們公司有一個非常類似的情況,我們創建了使用WIX安裝包。我們的配置轉換髮生在安裝時,所以現在我們創建一個單一的版本,然後通過MSI安裝包將其部署到每個服務器。 WIX非常靈活,但也有一個陡峭的學習曲線。我們使用自己的自定義操作修改配置,但可以通過其他方式完成。

我們使用的Team Foundation Server和MSBuild做我們的版本。這非常簡單,但確實需要一些工作來正確設置與我們一樣多的項目和解決方案。

其他選擇,我們進去看了看,甚至試圖爲:

  • 的InstallShield - 不夠靈活。
  • 編寫我們自己的C#安裝 - 維克斯已經認爲我們 試圖完成何必另起爐竈一切的?
  • 只需說出所有內容並手動安裝東西 - 2或 在WIX和MSBuild中進行3個月的開發時間很容易支付 我們去年花費在手動操作上的時間。

我認爲Visual Studio中內置的部署工具是爲單個應用程序設計的,只需少量部署即可。聽起來您需要外部工具和開發工作,才能更快地部署您的部署,並且無需手動執行任務。這就是爲什麼我們投資上述解決方案,並且真正取得成功。

-1

我將選擇Installshield。

  • Installshield最新版本支持創建webdeploy軟件包。
  • 您可以爲單個項目中的所有應用程序定義IIS配置,如果要爲所有Web應用程序單獨或單個發行版創建程序包,請創建發行版。
  • Installshield的項目有一個對象模型,你基本上可以自動從構建腳本每一項工作,也是項目是簡單的XML文件,您還可以根據需要
  • 開發者可以修改單獨和你更新WixXML項目修改自動化腳本可以通過構建腳本將這些項目構建爲合併模塊添加到installshield項目中,並對installshield項目xml進行一些調整(至少在2011版本中,該部分不受installshield支持,但可以完成)
  • 您不'即使需要修改Visual Studio項目以遵循相同模式的Web應用程序組,既不手動修改您的installshield項目以爲這些案例添加新的Web應用程序,也可以爲新Web創建包沒有干預的pps設置基於根VS構建輸出的installshield項目自動化任務的一次構建腳本
相關問題