我们有一个在Azure中托管的网站项目,我们使用Web.config转换来设置环境变量。但是,我们当前为不同环境构建系统的方法是多次构建项目(目前这是3),这是低效的。
我们希望转而使用Web Deploy,因为这样可以很好地使用发布管理器。
我们的问题是使用Web Deploy参数而不是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,但是为值使用单独的Set Parameter文件。
不幸的是,在示例中,引用外部xml文件只有在目标计算机上才有效。与同事进行的一些测试证实了这一点;适用于本地计算机,但不适用于Azure。
有没有办法可以强制Web Deploy查看外部配置文件的特定位置?
答案 0 :(得分:2)
正如您已经注意到的,Web Deploy只能读取本地计算机或UNC共享上的替换值。它无法通过HTTP读取该特定文件。
如果您要部署到Azure Web App,那么您可以尝试的一件事是使用Kudu / FTP手动将该文件上传到wwwroot文件夹上一级。然后您可以像这样指定文件位置:
d:\家\站点\ prices.xml :: //书[@名称= 'BOOK1'] /价格
当然这意味着您必须在发布到您的网站之前预先上传此文件,因此它不是一个完美的解决方案,但它应为您要完成的工作而工作