在Azure应用服务部署任务中,我将JSON variable substitution
指定为**/appsettings.json
,并且我可以在日志中看到已进行替换。包含替代变量值的appsettings.json
通常不会被复制,因为它没有被视为已更改。这会导致部署原始模板化appsettings.json
文件,并 * 导致 * 应用服务无法正确启动。奇怪的是,它似乎最经常发生在自动触发发布的时候。当手动运行时,它似乎复制了文件。
如果能够简单地对模板化的appsettings.json
文件执行替换,然后将其复制到应用程序服务,那就太好了,但我一直无法找到任何方法来做到这一点......也许这是不可能的。
如果有另一种方法可以更容易地将特定于环境的appsettings.json
文件部署到应用程序服务,那就太好了。
与此同时,如果替换的文件 * 总是 * 部署,那么它将是第一名。
如果有任何区别,则为任务提供了-useCheckSum
参数。
1条答案
按热度按时间odopli941#
确保已取消选中
Remove files at destination
选项。如果在部署期间选中此选项,则现有文件将被删除。
如果有任何区别,则为任务提供了一个
-useCheckSum
参数。如果启用了
usechecksum
选项,则仅当存在任何更改时才部署文件。如果每次都要部署
appsettings.json
文件,则禁用usechecksum
选项。感谢@Alex AIT的评论。
“从包中运行”部署不会受到这些问题的影响。这对你来说是一个选择吗?
是的,通过使用
Run from package
选项,我们可以避免此类问题。所有文件都打包在一个zip文件夹中,部署后即可使用。如果有另一种方法可以更容易地将特定于环境的
appsettings.json
文件部署到应用程序服务,那就太好了。我们可以选择将
App Settings
存储在应用配置中。请使用Azure管道参考Push settings和Pull settings。