更新:免费/低成本的工具"/>

关于iis:什么是Windows上网站的良好部署工具?

What is a good deployment tool for websites on Windows?

我正在寻找可以将文件从开发机复制(最好仅更改为文件)到暂存机,最后复制到一组生产机的东西。

"如果..."模式和"回滚"上次部署的功能一样会很好。数据库迁移不是必需的功能。

更新:免费/低成本的工具会很棒,但成本并不是唯一的问题。一个实际上可以管理从一个环境到下一个环境(dev-> staging-> production而不是从开发机器到每个环境的部署)的工具也将是理想的。

另一个重要的优点是只能复制更改的文件-我们的某些旧站点包含数百个.asp文件。


在某些情况下,我使用了名为SyncBack的免费软件(在此处下载)。

它提供复杂的,多步骤的文件同步(文件系统或FTP等,压缩等)。该程序具有一个不错的图形用户界面。您可以定义配置文件并将它们组合/执行。

您可以在文件类型,名称等上设置过滤器,并在作业执行后执行命令/程序。还有一个以html报告形式提供的作业日志,如果您计划该作业,可以通过电子邮件发送给您。

也有该软件的专业版本,但是对于常见任务,免费软件应该可以正常工作。

alt

1
2
robocopy.exe
for /?

是的,这是一个完全的" hack ",但是它很好地移动了文件。


您没有指定是否使用Visual Studio .NET,但是Visual Studio 2005和2008中有一些内置工具:

"复制网站"工具-基本上是一种视觉同步工具,它突出显示文件并允许您从一个复制到另一个。手册,内置在Visual Studio中。

aspnet_compiler.exe-使您可以预编译网站。

当然,您可以创建一个Web部署程序包,也可以将其部署为MSI。

我使用了Cruise Control.NET,nant和MSBuild的组合来编译和交换特定环境的配置文件,并将这些文件复制到构建输出目录。然后,我们还有另一个nant脚本来进行文件复制(并在必要时运行数据库脚本)。

为进行回滚,我们将保存所有先前的部署,因此从理论上讲,回滚仅涉及重新部署最后一个有效的构建(并还原数据库)。


尝试复制。它可以处理全部回滚到以前版本的文件。在为需要使用它的客户工作时,我一直在使用它;我已经成为它的忠实拥护者:

  • 回滚到以前的代码版本
  • 不同用户角色的身份验证和规则
  • 部署到多个环境
  • 通过电子邮件/日志向用户进行完整报告,详细说明已更改的内容,当前的版本等。

也许rsync和一些自定义脚本可以解决问题。


我已经放弃尝试寻找一款行之有效的免费产品。
然后,我发现了Microsoft的Sync Toy 2.0,虽然缺少选项,但效果很好。

但是我需要部署到远程服务器。

由于我连接了终端服务,所以我意识到我可以在连接时选择本地硬盘,然后在远程服务器上的资源管理器中打开远程服务器上的\\\\tsclient\\S\\MyWebsite

然后我将synctoy与该路径一起使用,并将其与我的服务器同步。到目前为止似乎工作得很好并且很快...


我们使用了可自定义的UnleashIt(我知道这是一个不幸的名字),它允许您保存配置文件以部署到不同的服务器。它还具有"备份"功能,该功能将在部署之前备份您的生产文件,因此回滚应该非常容易。


推荐阅读