16

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

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

  • 绝对神秘的语法(-skip:objectName=filePath,absolutePath=App_Offline.*仅用于跳过App_Offline.html
  • 作为事后的想法表现出来
  • 缺乏详尽的文档
  • 对可扩展性只字不提(除了那里的几篇博客文章)。而且,所有这些辛辛苦苦开发的扩展都必须在 GAC注册中心注册
  • Waaay 太低级(元数据/元数据;所有这些 IIS 爵士乐)
  • 未与 MSBuild 集成

诚然,MSDeploy 和 MSDeployAgent 非常强大,但是对于相对简单的任务,它们真的需要那么复杂吗?

4

6 回答 6

10

我也与您一样对缺少文档和该工具明显的低级性质感到沮丧。

然而,MS 所做的是最终创建了一个免费工具,您可以使用它实际编写整个服务器部署的脚本,包括参数化地址、配置等。不幸的是,这是一件非常复杂的事情——考虑到实际上有多少位配置进入 Web 服务器- 这可能是完成这一切的最佳方式。

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

在功能方面,我目前正在使用从dev -> staging -> live with parameters 来更改绑定的 IP 地址等部署站点。我花了几天时间才让这一切正常工作,这让我深感沮丧 -但是现在我有了它,我可以在 IT 支持方面消除很多可能的人为错误——他们负责我们的部署。我现在只需要担心我的主登台服务器的配置 - 并且可以确保网络场中的所有服务器在我部署时都会保持同步。

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

于 2010-02-08T15:36:50.707 回答
4

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

于 2010-01-15T00:21:06.217 回答
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/

于 2011-09-23T18:02:12.840 回答
3

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

我还使用了这些参考资料:

  • dnrtv.com 上有关 MSBuild 的视频
  • Microsoft Press 名为“ Inside the Microsoft® Build Engine: Using MSBuild and Team Foundation Build”的书籍,您可以从 Oreilly 购买 PDF 版本

最后是《Continuous Delivery》这本书,给了我关于部署管道的好想法,虽然这本书不是重点介绍MSDeploy,但是真的很值得一读。

于 2012-10-06T15:05:43.117 回答
1

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

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

于 2010-01-08T23:46:14.477 回答
1

Msdeploy 绝对有一点 PowerShell 的味道:简单而不是更糟就是更好的力量。

没有 Windows 替代品,但是您可以混合它的一些功能来进行自动化部署。例如:

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

作为一种工具,它显然是针对服务提供商的,因为它是一把巨大的瑞士军刀。你可以用它对 IIS 做各种各样的事情,这在大多数情况下对于小型企业来说是多余的。我没有大规模 IIS 设置的经验,所以也许这就是它的亮点。

于 2012-02-03T12:46:03.263 回答