首页 / 知识
关于iis:循序渐进的ASP.NET自动化构建/部署
2023-04-15 01:16:00
Step-By-Step ASP.NET Automated Build/Deploy似乎有很多不同的方法可以自动执行构建/部署,因此很难通过人们在网络教程中支持的所有不同方案来进行分析。因此,我想向stackoverflow人群介绍这个问题...使用以下配置来设置自动化构建和部署系统的最佳方法是什么:
我尝试做的第一件事是让CCnet自动压缩输出并将其复制到服务器,但这需要手动工作才能在目标位置解压缩。但是,如果我们尝试分别复制所有文件,那么如果它是大型应用程序,则可能会花费很长时间(构建服务器位于我们办公室的数据中心之外……我知道)。 同样特别令人感兴趣的是,当我们拥有dev,qa,uat和prod之后,我们将如何支持多种环境。 MSDeploy看起来确实很有趣,但是除非我对文献有错误的解释,否则在从生成服务器的输出进行部署的情况下将无济于事。如果有的话,在整个构建场中部署一个构建似乎很有用……但是,即使是从一个环境部署到另一个环境,也必须手动更改配置设置和Web服务URL等。 最近,我花了几天时间在公司进行自动化部署。 我们结合使用CruiseControl,NAnt和MSBuild来生成应用程序的发行版。然后,一个单独的脚本使用MSDeploy和XCopy备份实时站点并转移新文件。 在对这个问题的答案中简要描述了我们的解决方案。 您可能对MSDeploy感兴趣。这是Scott Hanselman的相关文章。目前(2008年9月)仅作为技术预览提供,但值得根据您的要求进行评估。 还有另一个称为NUBuild的新构建工具(非常智能的包装器)。它轻巧,开源,并且非常易于设置,并且几乎没有接触维护。我真的很喜欢这个新工具,我们已经将其作为用于项目的持续构建和集成过程的标准工具(我们有75个开发人员的大约400个项目)。试试看。 http://nubuild.codeplex.com/
您有能力远程运行命令吗? Systinternals的PsExec实用程序将允许在远程计算机上运行命令行解压缩程序。如果您有一个脚本将构建文件作为.zip文件复制到远程站点,则只需要多一行用于PsExec调用即可将文件解压缩。 我看到很多人在他们的.NET项目中使用CC,但是为什么不使用Sonarqube的Jenkins?他们满足了您的所有需求。我在3天内设置了所有这一切。我有一个Win 2008服务器R2,MSSQL,Jenkins,VISual SVN和Sonarqube。 一切都很好,您可以获得项目的所有指标。 Sonarqube使用Gallio,Gendarme,FXcop,Stylecop,NDepths和PartCover来获取指标,所有这些都非常简单,因为SonarQube无需太多配置即可自动执行此操作。 我为您发布了som图片,您也对此有一种感觉。这是詹金斯(Jenkins)的女巫构建并获取声纳(Sonar)指标,以及另一项自动部署到IIS的工作
关于此过程,您没有提到的一件事是数据库部署方面。大多数ASP.NET应用程序都需要一个关联的数据库,否则它们可能只是静态HTML文件。每次部署时,数据库架构都必须更新为适当的数据库版本,这一点至关重要。毫不奇怪,BuildMaster中也有一个模块可以为您处理此问题。想法是将DDL-DML脚本存储在工具本身中,并且通过在每个环境中仅执行脚本一次,可以确保在通过环境部署构建时,每个环境中的所有数据库都是最新的。其他脚本(例如存储过程,视图,触发器等)本质上是代码文件,因此属于源代码管理。这些DROP-CREATE-CONFIGURE类型的脚本在大多数情况下可以通过简单的部署操作每次运行。 大多数开发人员没有想到的部署难题中的另一个是流程自动化。许多开发人员需要执行签字或填写变更请求表才能手动执行这些过程。同样,所有这些都可以作为BuildMaster中自动工作流程设置的一部分来使用。您可以设置阻止程序,除非所有单元测试都通过了,否则不允许升级人员说出QA环境;或者除非升级到QA团队的人批准构建并且问题跟踪工具中的所有问题都已解决/关闭,否则禁止升级人员将其声明为QA环境。该特定版本。 虽然我意识到我从答案中删除了CC.NET,但是我们的应用程序都是通过BuildMaster构建和部署的,因此我们不再需要它了,尽管我们可以轻松地从放置位置提取工件并将它们部署在以后的环境中。 我有一个有关从自动化构建中获取可部署文件集的相关问题。我发现Web部署项目(所有链接和旧问题中的所有内容)都能满足我的需要-它们是VS和MSBuild加载项。 |
最新内容
相关内容
linux安装执行命令?
linux安装执行命令?,系统,软件,网络,密码,官方网站,在线,工作,盘中,电脑,第一,linux常用安装软件的命令1、)bin包,如jdk-1_5_0_05-linux-i58bin,linux执行命令超时?
linux执行命令超时?,时间,代码,系统,名字,环境,工作,服务,下来,名称,地址,如何解决SSH连接Linux超时自动断开1、修改一下SSH服务的超时时间,根linux远程执行多命令?
linux远程执行多命令?,工具,服务,命令,状态,暂停,代码,底部,时间,地址,系统,Linux多台主机批量执行命令1、执行命令(记得先对doCommand.s h增加linux命令行执行工具?
linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,shell编程(掌握Linux命令行工具)1、在开始Shell编程之前,我们需要linux执行命令超时?
linux执行命令超时?,时间,代码,系统,名字,环境,工作,服务,下来,名称,地址,如何解决SSH连接Linux超时自动断开1、修改一下SSH服务的超时时间,根linux安装执行命令?
linux安装执行命令?,系统,软件,网络,密码,官方网站,在线,工作,盘中,电脑,第一,linux常用安装软件的命令1、)bin包,如jdk-1_5_0_05-linux-i58bin,linux命令执行10次?
linux命令执行10次?,地址,工作,信息,系统,命令,目录,标准,设备,发行,文件,Linux命令linux系统常用操作命令如下:ls:全拼list,功能是列出目录的内linux执行命令后无号?
linux执行命令后无号?,系统,环境,信息,工具,状态,数据,命令,文件,字符集,环境变量,在linux命令行中执行sql查询出现乱码用Linux命令“source ~linux命令支持通配符?
linux命令支持通配符?,工具,系统,命令,灵活,较大,名称,名字,环境,数字,文件,Linux的基本命令格式如何?Linux下经常使用的通配符有哪些通配符linux周期执行命令?
linux周期执行命令?,工作,系统,周期,地址,命令,工具,信息,时间,任务,目录,linux命令行下怎么定时执行一个命令?1、编辑定时执行计划。这个方式linux执行命令被阻止?
linux执行命令被阻止?,档案,系统,服务,网络,工具,在线,信息,基础,状态,命令,在Linux中执行文件时候权限不够,怎么解决1、可以使用chmod命令修linux执行命令大全?
linux执行命令大全?,工作,系统,地址,信息,命令,目录,工具,基础,设备,发行,Linux文件系统操作命令1、cat:可以显示文件的内容(经常和more搭配使