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

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

  • 绝对神秘的语法(-skip:objectName=filePath,absolutePath=App_Offline.* 只是为了跳过 App_Offline.html)
  • 表现为事后的想法
  • 缺乏完整的文档
  • 没有提到可扩展性(除了几篇博客文章)。而且,所有这些煞费苦心开发的扩展都必须在GAC中注册 注册表
  • 太低级了(元数据/元密钥;所有这些 IIS 爵士乐)
  • 未与 MSBuild 集成

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

有帮助吗?

解决方案

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

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

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

在功能方面,我目前正在使用以下位置部署站点 开发 -> 登台 -> 上线 使用参数来更改绑定的 IP 地址等。令我深感沮丧的是,我花了几天时间才使其全部正常工作 - 但现在我有了它,我可以消除 IT 支持方面的许多可能的人为错误 - 他们负责我们的部署。我现在只需担心主登台服务器的配置 - 并且可以确保每次部署时网络场中的所有服务器都将保持同步。

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

其他提示

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

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

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

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

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

  • dnrtv.com 上有关 MSBuild 的视频
  • 微软出版社的书名为“Microsoft® 构建引擎内部:使用 MSBuild 和 Team Foundation Build” 您可以从 Oreilly 购买 PDF 版本

最后,《持续交付》一书,给了我关于部署管道的很好的想法,虽然这本书不是专注于MSDeploy,但是它确实值得一读。

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

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

Msdeploy 确实有点像 PowerShell:权力胜于简单,而不是 越差越好.

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

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

作为一种工具,它显然是针对服务提供商的,因为它是一把巨大的瑞士军刀。您可以使用它对 IIS 执行各种操作,这对于小型企业来说大多数情况下都是过分的。我没有大规模 IIS 设置的经验,所以也许这就是它的优点。

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