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

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

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

编辑:
我现在需要自动化网络部署;但是,我还想了解如何为桌面应用程序执行此操作。

有帮助吗?

解决方案

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

Visual Studio Web部署项目

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

也许现在技术已经成熟。

其他提示

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

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

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

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

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

我已经写了一篇非常详细的博客文章,使用 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 客户端,名为
  • 使用 MSBUILD 任务 EXEC 的 WinSCP (http://winscp.net/)
  • 上传我的所有网站内容
  • 有选择的[插入饮料]

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

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

我看到两个不同的问题:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top