【问题标题】:Automatic Deployment Resources自动部署资源
【发布时间】:2008-10-23 20:07:23
【问题描述】:

我知道我们需要通过单个用户操作来部署我们的应用程序。但是,我知道:

  1. 在 .NET 商店中可以使用哪些好工具?
  2. 您如何管理每个环境的配置更改?

有人可以为我指出一些用于持续集成的好资源吗?我希望看到一些理论以及一步一步的实用指南。

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

【问题讨论】:

  • 什么样的环境 - Web 或桌面?

标签: deployment continuous-integration build-automation automated-deploy


【解决方案1】:

我写了一篇可能有用的博文:

Visual Studio Web Deployment Projects

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

也许现在这些技术也已经成熟了。

【讨论】:

    【解决方案2】:

    Windows Installer XML 取得了巨大的成功。基本上,您在 XML 中定义构成应用程序的组件,然后 WiX 将其转换为 MSI 包。文档相对较少,但提供的 CHM 文件与 search fu 相结合将让您走得更远。

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

    【讨论】:

    • MSI 包对于 windows 应用来说是不错的,但对于 web 应用来说,我觉得更增量的更新过程更好。例如,VBP(在我的回复中提到)可以检测到只有一个 ASPX 页面发生了变化,然后只需部署它,这样可以节省潜在的停机时间、会话超时等。
    【解决方案3】:

    Kinook 的Visual Build Pro 是一个非常好的一键部署工具。它易于使用并且具有很多功能。我已经使用它多年了。当然还有 NAnt,我用的不多。

    就管理配置更改而言,我管理多个带有指示部署环境的扩展名的配置文件,然后在我的构建脚本中进行简单的重命名。

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

    【讨论】:

      【解决方案4】:

      我已经写了一篇非常详细的博客文章,使用 TeamCity 和 Web 部署项目来自动化构建和部署作为初学者在这里:

      http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

      然后我添加到此以显示 FTP 添加

      http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

      基本流程非常简单:

      • 使用我从我的 SVN 存储库下载的 teamcity 构建服务器
      • 我构建站点并将其部署到构建服务器上的本地文件夹
      • 我启动了一个支持脚本的命令行 FTP 客户端,称为
      • WinSCP 使用 MSBUILD 任务 EXEC (http://winscp.net/)
      • 上传我的所有网站内容
      • 选择[插入饮料]

      然后我确保我只部署我的 SVN 存储库的主干,并在合并之前开发和测试分支中的所有内容 - 这样只有经过测试的东西才会被部署。将自动化测试添加到您的构建周期中,您就有了天作之合。

      一些很棒的免费工具是:

      【讨论】:

        【解决方案5】:

        我看到两个不同的问题:

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

        【讨论】:

          【解决方案6】:

          CruiseControl.NET 用于您的 ContinuousIntegration 解决方案。对于部署,我使用 MSBuild 项目文件。最重要的是,我保留了所有服务器配置文件。我通过参数将服务器属性传递给 MSBuild,该属性告诉 MSbuild 要使用哪些配置值,然后完成部署。唯一无法直接从 CruiseControl 完成的部署是部署到我们的实时服务器。我们保留命令行 MSBuild 只是为了避免意外按下按钮,或者有权访问 CC.NET Web 仪表板的人只是在玩弄它。

          【讨论】:

            猜你喜欢
            • 2021-01-08
            • 2019-07-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-02-27
            • 1970-01-01
            • 2021-04-02
            相关资源
            最近更新 更多