什么是Windows上网站的良好部署工具?

时间:2020-03-05 18:47:21  来源:igfitidea点击:

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

"假设"模式和"回滚"上一个部署的功能一样会很不错。数据库迁移不是必需的功能。

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

另一个重要的优点是,仅可以复制已更改的文件,而我们的某些旧站点中包含数百个.asp文件。

解决方案

回答

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

回答

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

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

aspnet_compiler.exe-让我们预编译网站。

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

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

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

回答

@Sean Carpenter我们能告诉我们更多有关环境的信息吗?解决方案应该免费吗?简单的?

我发现robocopy对于这种事情非常灵活。打包成一个批处理文件,一切就好了。这是一个荣耀的xcopy,但部署我的网站并不难。只需复制文件即可。

至于回滚...我们正在使用源代码控制吗?只需将旧资源移出那里即可。或者,在批处理文件中,也将部署复制到另一个名为网站yyyy.mm.dd的文件夹中,这样我们就可以在紧急情况下准备好一个可爱的文件夹。

查看for命令以获取有关如何获取日期部分的详细信息。

robocopy.exe
for /?

是的,这完全是"黑客",但它可以很好地移动文件。

回答

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

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

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

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

回答

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

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

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

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

回答

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

回答

尝试repliweb。它可以处理完全回滚到以前版本的文件的情况。在为需要使用它的客户工作时,我一直在使用它;我特别地成为它的忠实拥护者:

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