Web Deploy 使用外部文件设置参数

Web Deploy Set Parameter using external file

我们有一个托管在 Azure 中的网站项目,我们使用 Web.config 转换来设置环境变量。但是,我们目前针对不同环境构建系统的做法是多次构建项目(目前是3次),效率低下。

我们想转而使用 Web Deploy,因为这会为我们使用 Release Manager 做好准备。

我们的问题是关于使用 Web 部署参数而不是 web.config 转换;我们需要替换多个 xml 元素,而不是单个值。

经过大量研究,我发现这两篇文章几乎完全准确地描述了我正在尝试做的事情 http://blogs.iis.net/elliotth/web-deploy-xml-file-parameterization http://www.iis.net/learn/publish/using-web-deploy/parameterization-improvements-in-web-deploy-v3

本质上,我正在尝试复制场景 5,但使用单独的设置参数文件作为值。

不幸的是,在示例中,引用外部 xml 文件仅在目标机器上有效。与同事进行的一些测试证实了这一点;适用于本地计算机,但不适用于 Azure。

有没有办法强制 Web Deploy 在特定位置查找外部配置文件?

您已经注意到,Web Deploy 只能读取本地计算机或 UNC 共享上的替换值。它无法通过 HTTP 读取该特定文件。

如果您要部署到 Azure Web 应用程序,那么您可以尝试的一件事是使用 Kudu/FTP 手动将该文件上传到您的 wwwroot 文件夹的上一级。然后你可以像这样指定文件位置:

D:\home\site\prices.xml:://book[@name='book1']/price

当然这意味着您必须在发布到您的网站之前预先上传此文件,因此这不是一个完美的解决方案,但它应该适合您的需求正在努力完成。