自动部署资源

时间:2008-10-23 20:07:24

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

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

  1. 在.NET商店中使用哪些好工具?
  2. 如何管理每个环境的配置更改?
  3. 有人能为我指出一些可持续整合的好资源。我想看一些理论以及一步一步的实用指南。

    修改
    我现在需要自动化Web部署;但是,我也想学习如何为桌面应用程序执行此操作。

6 个答案:

答案 0 :(得分:5)

我写了一篇可能有帮助的博客文章:

Visual Studio Web Deployment Projects

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

也许现在技术已经成熟。

答案 1 :(得分:2)

我们在Windows Installer XML取得了巨大成功。基本上,您使用XML定义组成应用程序的组件,WiX将其转换为MSI包。文档相对稀疏,但提供的CHM文件与搜索功能相结合将为您提供很长的路要走。

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

答案 2 :(得分:1)

来自Kinook的

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

就管理配置更改而言,我管理多个配置文件,其中包含指示部署环境的扩展,然后只需将一个简单的重命名作为构建脚本中的一个步骤。

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

答案 3 :(得分:1)

我使用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

基本流程非常简单:

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

然后我确保我只部署SVN仓库的Trunk,并在合并之前开发并测试分支中的所有内容 - 这样只会测试部署的测试内容。在您的构建周期中添加自动化测试,您就可以在天堂进行匹配。

一些很棒的免费工具:

答案 4 :(得分:0)

我看到两个不同的问题:

  • 对于部署事项:ClickOnce部署应该这样做。您只需通过在Build菜单中访问VS.net>来发布您的桌面应用程序。发布。然后VS.net编译一个网页和一个setup.exe。当用户使用IE或Firefox和.net 3.5 SP1点击链接时,它立即运行。 ClickOnce还为您处理更新,并为其开发了广泛的API。
  • 持续集成是一个非常不同的事情。我建议您谷歌搜索'CruiseControl.net'并下载并尝试尽可能多的资源。它基本上是一个构建服务器,但您可以将其与SVN,NUnit连接以进行测试等。我不建议买一本关于这种易变产品的书。最好下载它并试一试。

答案 5 :(得分:0)

CruiseControl.NET用于ContinuousIntegration解决方案。对于部署,我使用MSBuild项目文件。最重要的是,我保留了所有服务器配置文件。我通过参数传递给MSBuild一个服务器属性,告诉MSbuild使用哪些配置值,然后完成部署。 CruiseControl无法完成的唯一部署是我们的实时服务器。我们离开命令行MSBuild只是为了让我们不小心按下按钮,或者有权访问CC.NET web仪表板的人只是在玩游戏。

相关问题