ANT和WAR文件的.NET等价物?

时间:2012-08-01 15:08:28

标签: asp.net deployment version-control

我们的大多数内部应用程序都是使用Ant构建在Java EE堆栈上,并使用WAR文件部署到Tomcat。我们有一个构建框,可以创建一个以生产为目标的WAR,然后将WAR传递给Test环境。运行脚本将已部署的Web应用程序转换为指向测试数据环境。

经过几个循环的测试 - >错误修复 - >构建 - >重新部署以进行测试,然后将WAR文件部署到Production,然后生效。

我最近继承了一些ASP.NET 4.0 webapps,他们的Build / Deploy完全不同;代码在VS中构建,然后将整个项目目录复制到每个环境中。然后手动调整,偶尔用服务器上的VS实例重建。

这有点可怕,因为在一个环境中有很多机会可以被遗忘,因此要求我们在他们“实时”之后使用我们的应用程序,超出测试范围,版本控制等

所以,所有这一切都说: 是否有与.NET世界中的Ant / WAR机制相同的东西?从.NET webapp创建可执行工件并在环境之间以最小的修改移动它的最安全的方法是什么?我知道“最好的实践”是一个禁忌短语,但我想在.NET中重新制作Ant之前先了解一些专业知识。 : - )

1 个答案:

答案 0 :(得分:6)

有关自动化Web部署需要了解的三项技术:

  1. MSBuild - 这是微软的等同于ANT。项目文件基本上只是一系列MSBuild任务。
  2. WebDeploy - 这基本上是你的WAR / Tomcat等价物,除了它创建部署包,并且用于IIS。
  3. XML Transforms - 您永远不会手动编辑配置。如果您需要部署多个环境,则必须进行配置转换。
  4. 将所有这些与您最喜欢的Build服务器(我使用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