Deployment 自动部署资源

Deployment 自动部署资源,deployment,continuous-integration,build-automation,automated-deploy,Deployment,Continuous Integration,Build Automation,Automated Deploy,我非常清楚,我们需要通过一个用户操作来部署应用程序。但是,我不知道: 在.NET商店中使用哪些好工具 如何管理每个环境的配置更改 有人能给我指出一些持续集成的好资源吗。我想看看一些理论以及一个循序渐进的实践指南 编辑: 我现在需要自动化web部署;不过,我还想学习如何为桌面应用程序执行此操作。来自Kinook的是一个非常好的一键部署工具。它易于使用,并具有许多功能。我已经用了很多年了。当然还有NAnt,我没怎么用过 至于管理配置更改,我管理多个扩展名指示部署环境的配置文件,然后在构建脚本中执行一

我非常清楚,我们需要通过一个用户操作来部署应用程序。但是,我不知道:

  • 在.NET商店中使用哪些好工具
  • 如何管理每个环境的配置更改
  • 有人能给我指出一些持续集成的好资源吗。我想看看一些理论以及一个循序渐进的实践指南

    编辑:
    我现在需要自动化web部署;不过,我还想学习如何为桌面应用程序执行此操作。

    来自Kinook的是一个非常好的一键部署工具。它易于使用,并具有许多功能。我已经用了很多年了。当然还有NAnt,我没怎么用过

    至于管理配置更改,我管理多个扩展名指示部署环境的配置文件,然后在构建脚本中执行一个简单的重命名步骤


    例如,如果我要部署测试,我可能有一个名为Web.Test.config的配置文件,它会被构建脚本自动重命名为Web.config。

    我们在这方面取得了巨大成功。基本上,您用XML定义组成应用程序的组件,WiX将其转换为MSI包。文档相对较少,但提供的CHM文件与search fu相结合将使您在这方面取得长足的进步


    MSI包可以获取配置值的输入参数,并在部署应用程序后执行操作配置文件的操作。例如,“msiexec/i MyCustomPackage.msi SqlServer=SomeSQLBox”可以部署web应用程序并修改从属SQL框的配置条目。

    我看到两个不同的问题:

    • 对于部署,ClickOnce部署应该可以做到这一点。您只需在VS.net的“构建”菜单>“发布”中发布桌面应用程序。然后VS.net编译网页和setup.exe。当使用IE或Firefox和.NET3.5SP1的用户单击该链接时,它会立即运行。ClickOnce还为您处理更新,还有大量的API需要开发
    • 持续集成是一件非常不同的事情。我建议你在谷歌上搜索“CruiseControl.net”,下载并尝试尽可能多的资源。它基本上是一个构建服务器,但您可以将它与SVN、NUnit连接起来进行测试等等。我不建议为这种不稳定的产品买一本书。最好下载并尝试一下

    CruiseControl.NET,用于您的持续集成解决方案。对于部署,我使用MSBuild项目文件。最重要的是,我保存了所有的服务器配置文件。我通过服务器属性的参数传递给上的MSBuild,该属性告诉MSBuild要使用哪些配置值,然后完成部署。唯一不能从CruiseControl直接完成的部署是部署到我们的实时服务器。我们离开命令行MSBuild只是为了不意外地按下按钮,或者让有权访问CC.NET web dashboard的人玩一下。

    我写了一篇博客文章,可能会有所帮助:

    它已经有一年半的历史了,但它谈到了一些新的(当时)VS项目模板,以及IIS团队中名为MSDeploy的命令行实用程序。它们听起来非常有前途,而且似乎非常适合于针对多个构建配置,在一个服务器场中同步多个服务器,以及更多地控制网站部署的实际输出


    也许到目前为止,这些技术也已经成熟。

    我已经用TeamCity和Web部署项目撰写了一篇非常详细的博客文章,将构建和部署自动化作为起点:

    然后,我将其添加到该文件中,以显示FTP添加

    基本流程非常简单:

    • 使用teamcity构建服务器,我从我的SVN repo下载
    • 我构建站点并将其部署到构建服务器上的本地文件夹中
    • 我启动了一个支持脚本的命令行FTP客户端,名为
    • 使用MSBUILD任务EXEC的WinSCP(http://winscp.net/)
    • 上传我所有的网站内容
    • 选择[插入饮料]
    然后,我确保只部署我的SVN repo的主干,并在合并之前开发和测试分支中的所有内容——这样只部署经过测试的内容。将自动测试添加到您的构建周期中,您将获得天作之合

    一些很棒的免费工具包括:


    什么样的环境-网络还是桌面?MSI软件包适用于windows应用程序,但对于网络应用程序,我觉得更增量的更新过程更好。例如,VBP(正如我在回复中提到的)可以检测到只有一个ASPX页面发生了更改,并将其部署,从而节省了潜在的停机时间、会话超时等。