关于MSDeploy的意见

时间:2009-12-29 10:27:49

标签: web-deployment msdeploy

你知道,微软的下一个“大”和“企业”的东西。

这只是我,还是人类真的难道?主要亮点是(IMO):

  • 绝对神秘的语法(-skip:objectName=filePath,absolutePath=App_Offline.*只是为了跳过App_Offline.html
  • 作为一种思想表现
  • 缺乏完整的文档
  • 没有关于可扩展性的文字(除了几篇博文之外)。此外,所有这些非常痛苦的扩展必须在GAC 注册表中注册
  • Waaay太低级别(元数据/ metakey;所有这些IIS爵士乐)
  • 没有与MSBuild集成

当然,MSDeploy和MSDeployAgent非常强大,但他们是否真的需要那个复杂的相对简单的任务?

6 个答案:

答案 0 :(得分:10)

我也对缺乏文档以及此工具的明显低级特性感到沮丧。

然而,MS所做的最终创建了一个免费工具,您可以使用该工具实际编写整个服务器部署的脚本,包括参数化地址,配置等。遗憾的是,这是一件非常复杂的事情 - 考虑到实际配置了多少位配置一个Web服务器 - 这可能是最好的方法。

我们现在需要的是一个非常好的GUI,它可以帮助构建这些软件包和脚本等。嵌入在IIS中的GUI很好 - 但同样,缺乏解释 - 所以希望很快就能得到解决。

在功能方面,我现在正在使用 dev - >部署网站。分期 - > live 带参数来更改绑定的IP地址等。我非常沮丧,我花了几天时间让它全部工作 - 但是现在我拥有它,我可以删除很多可能的人为错误IT支持方 - 谁负责我们的部署。我现在只需要担心主登台服务器的配置 - 并且可以确保在部署时,Web场中的所有服务器都将保持同步。

正如Sayed所提到的那样,2010年有MSBuild任务(网站部署功能现在使用msdeploy实现)来处理这个问题 - 这也为VSTeamSystem带来了真正的持续集成环境的可能性 - 拥有团队构建实际上可以执行完整的Web部署,因为它的最后一步非常令人兴奋(并且可怕,授予!)。

答案 1 :(得分:4)

实际上MSDeploy有MSBuild任务。它们将随.NET 4 / Visual Studio 2010一起提供。

答案 2 :(得分:3)

虽然边缘有点粗糙,但我已经非常喜欢MSDeploy了。使用它来同步服务器场中的Web服务器非常有用,因为它有效(仅复制更改)并且除了内容文件之外还负责实际的IIS设置。似乎MSDeploy是各种场景和用途的构建块。此外,如前所述,在.NET 4中有MSDeploy的MSBuild任务。我已经利用此MSBuild任务从TeamCity部署我的Web应用程序非常简单。我在这里写了博客:

TeamCity的Web部署(MS部署) - http://www.geekytidbits.com/web-deploy-ms-deploy-from-teamcity/

答案 3 :(得分:3)

我最近开始实施部署管道,我发现下面的链接非常有用:

我也使用了这些参考文献:

  • 关于dnrtv.com上MSBuild的视频
  • Microsoft Press书名为“InsideMicrosoft®BuildEngine:使用MSBuild和Team Foundation Build”,您可以从Oreilly购买PDF版本

最后,“持续交付”一书,给了我关于部署管道的好主意,虽然本书并不专注于MSDeploy,但它确实值得一读。

答案 4 :(得分:1)

文档声明是典型的MSFT 1.0产品,遗憾的是MSDN不再拥有专门的开发人员技术工程​​师来填补空白 - 相反,人们盲目相信网络将提供它。

我实际上正在考虑清除我的写作技巧并写一篇简短的电子书,因为它可能有市场....

答案 5 :(得分:1)

Msdeploy绝对有一点PowerShell:超越简单而不是worse is better

没有Windows替代方案,但是您可以将其部分功能混合以进行自动部署。例如:

  • 使用Team City和msbuild编译您的解决方案
  • 使用msdeploy转换构建服务器上的站点和web.configs
  • 手动FTP您网站的ZIP文件(不支持FTP)
    • 或者,使用其远程部署功能。这需要端口8172打开,进行大量安全性更改,据我所知,负载均衡没有任何让步
  • 在实际站点上使用msdeploy来同步更改

作为一种工具,它显然是针对服务提供商,因为它是一把巨大的瑞士军刀。你可以用IIS做各种各样的事情,这在很大程度上是对小企业的过度杀戮。我没有大规模IIS设置的经验,所以也许这就是它闪耀的地方。