经典ASP-如何在持续集成环境中自动化部署

8
我已经阅读了一些有关自动部署和持续集成等方面的内容,例如: http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.htmlhttps://michaelbaylon.wordpress.com/2011/04/13/managing-sql-scripts-and-continuous-integration/ ...等。但是这些资源似乎没有涉及在经典ASP环境下进行自动化部署,而且除非进行自动化部署,否则无法实现适当的CI。
MSDeploy能够部署经典ASP网站吗?如果不能,那么最好编写一个构建脚本,将所有文件复制到正确的文件夹,然后启动IIS。我使用msbuild和robocopy msbuild扩展任务来完成这个过程。但是如何处理不同的环境(QA、dev、staging、production)?没有web.config可以放置不同的连接字符串等信息...据说msbuild是配置感知的...但是在没有web.config的情况下该如何操作呢?
因此,我遇到了很多问题,难以真正推进为我们的经典ASP网站创建部署脚本/模块/可执行文件的过程。是否有人可以提供任何答案、资源或进一步的问题来指导我?

这里关键的部分是我似乎无法解决...但我知道有人做到了...我正在努力寻找文档...使用ASP网站,如何在单击按钮或根据所提供的参数将其打包部署到3个环境之一? 第二件事是,一旦我已经为应用程序编写了构建脚本,并且在部署时需要进行一些数据库表或更改...这些仅会发生在此部署中...而不是下一个部署...因为那是另一个工单...我该如何处理? - Kevin Donde
3个回答

1

谢谢avakharia...我看了你提供的链接,但是我不知道如何找到它们有用。我尝试将我的浏览器和inetinfo附加到我的调试器上...但我无法弄清楚那真正如何帮助我在Visual Studio中处理asp脚本?我得到的只是ntdll.dll的反汇编。你和其他人,包括下载链接上的视频,都表明msdeploy可以部署asp网站。我按照建议尝试导出应用程序以查看将被打包的内容...但没有任何asp文件被打包...所以要么我做错了什么,要么它不受支持? - Kevin Donde

0

使用cruisecontrol.net进行结账,我们与msbuild一起使用它来进行自动化部署,效果非常好。我们是一个.Net商店,但基本上是相同的。Cruise Control可以运行脚本,并且可以很好地处理web.config/global.asa转换。只要您能编写脚本,cruise control就可以处理它。

根据您的开发环境,您可能可以将其连接到cruisecontrol中。我们使用TFS并且它可以很好地集成,因此当我们将项目检入不同的分支(Dev、Main、Stage)时,它会自动将网站部署到适当的位置。

在部署到生产环境时,我们使用MSbuild来移动代码。由于它位于另一个网络位置,因此我们需要一些可以走出去并执行任何必要的服务器更新的东西。

http://cruisecontrol.sourceforge.net/


罗伯特,我们的开发团队目前正在使用TeamCity……但即使我们切换了其他工具,Cruise Control如何帮助处理不同的环境和一次性数据库更改呢? - Kevin Donde
巡航控制只是我们用来启动构建脚本的软件。巡航控制的好处是,您可以编写任何类型的脚本,并使用参数运行它,并将其集成到开发环境中,以便在检入项目时运行部署流程。因此,我们设置了3个环境,当您检入其中任何一个时,巡航控制会启动部署并发送带有完整状态的电子邮件。您可以设置一个脚本来执行数据库部署,我们没有这样做,但考虑过这样做。 - Robert

0

MSDEPLOY可以部署任何可以在IIS中运行的内容。您可以从现有的网站创建一个包,并对其进行检查以查看打包了什么。您应该能够使用此方法来确定如何从源代码打包您的站点。

您甚至可以从源代码创建Visual Studio项目,以便直接使用Web发布管道。事实上,没有编译的内容也不应阻止您指定您的.ASP文件为内容文件。


如上所述,我尝试打包现有的网站,但其中没有包含任何asp内容。我不知道为什么?您是否也在说要在Visual Studio中创建一个空项目,并将所有文件添加到该项目中...然后围绕该项目编写构建脚本?如果是这样...再次问一下,我该如何创建它,使其与不同的环境(连接字符串等)配合使用。而且我不明白如何包含一次性数据库更改?下一次部署会发生什么...它仍然在脚本中吗?我需要为每个票据每次更改它吗? - Kevin Donde
你没有说你是如何尝试打包现有网站的。我的意思是,其中一种方法是创建空项目。你不需要构建脚本。正常的Web发布管道应该“只需运行”。我没有涉及数据库更改。我使用数据库项目来处理这个问题。 - John Saunders
抱歉我还没有尝试过,我会在周一回到工作时尝试创建一个项目。使用常规流程...Web配置转换如何与部署流程配合工作。我们需要一个构建脚本,因为我们需要在部署之前运行自动化测试等。我想我不太确定我正在寻找什么或从哪里开始设置这些参数,以便我可以自动选择部署位置... - Kevin Donde
我创建软件包以检查是否包含 asp 项目的方式是从 IIS 导出 Web 应用程序。 - Kevin Donde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接