我们的大多数内部应用程序都是使用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之前先了解一些专业知识。 : - )
答案 0 :(得分:6)
有关自动化Web部署需要了解的三项技术:
将所有这些与您最喜欢的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