Asp.net

ANT 和 WAR 文件的 .NET 等效項?

  • August 1, 2012

我們的大多數內部應用程序都使用 Ant 建構在 Java EE 堆棧上,並使用 WAR 文件部署到 Tomcat。我們有一個建構框,用於創建面向生產的 WAR,然後將 WAR 傳遞到測試環境。執行腳本以將部署的 webapp 轉換為指向測試數據環境。

經過幾個循環的測試 -> 錯誤修復 -> 建構 -> 重新部署以進行測試,然後將 WAR 文件部署到生產環境,然後就可以使用了。

我最近繼承了一些 ASP.NET 4.0 webapps,它們的 Build/Deploy 完全不同;程式碼在VS中建構,然後將整個項目目錄複製到各個環境中。然後手動對其進行調整,並偶爾使用伺服器上的 VS 實例進行重建。

這有點嚇人,因為有很多機會在一個環境中進行調整被遺忘,因此要求我們在應用程序“上線”後在測試、版本控制、等等

所以,所有這一切都在說:在 .NET 世界中是否存在與 Ant/WAR 機制等效的機制?從 .NET webapp 創建可執行工件並在環境之間以最少的修改移動它的最安全方法是什麼?我知道“最佳實踐”是一個禁忌片語,但在我在 .NET 中重新製作 Ant 之前,我想先了解一些專業知識。:-)

自動化 Web 部署需要了解的三種技術:

  1. MSBuild - 這是微軟的 ANT 等價物。項目文件基本上只是一系列 MSBuild 任務。
  2. WebDeploy - 這本質上是您的 WAR/Tomcat 等價物,除了它創建部署包,並且適用於 IIS。
  3. XML 轉換- 您永遠不必手動編輯配置。如果您需要部署多個環境,則配置轉換是必不可少的。

將所有這些與您最喜歡的建構伺服器(我使用 Jenkins)放在一起,您可以將整個部署過程完全自動化到任何環境。這些單獨的主題中的每一個都過於廣泛,無法在此處深入介紹,但您應該能夠以最少的知識開始。

為了給你一個例子來說明它是多麼簡單,這裡有一個範例命令行建構,它將把一個網站部署到一個 2003/IIS6 機器上。

MSBUILD "MyWebSite.csproj" 
   /p:Configuration=Dev 
   /p:OutputPath=bin 
   /t:Rebuild 
   /p:DeployOnBuild=true 
   /p:DeployTarget=MSDeployPublish 
   /P:AllowUntrustedCertificate=True 
   /p:MSDeployPublishMethod=RemoteAgent 
   /p:MsDeployServiceUrl=http://MyDevServer    
   /p:DeployIisAppPath="Default Web Site/MyWebSite" 
   /p:username=deployUser 
   /p:password=deployPassword

引用自:https://stackoverflow.com/questions/11762163