gpt4 book ai didi

azure - 文件转换任务无法转换压缩包上的 XML 配置

转载 作者:行者123 更新时间:2023-12-02 19:54:00 28 4
gpt4 key购买 nike

我正在开发发布管道,它将对应用服务工作线程配置执行转换,然后发布工作线程 + Web 应用程序。

我的输入包是由 MsBuild 发布(来自 ASP.NET 构建管道)生成的 zip 包。

...\PackageTmp\app_data\jobs\triggered\BillingWorker\App.Prod.config
...\PackageTmp\app_data\jobs\triggered\BillingWorker\App.Test.config
...\PackageTmp\app_data\jobs\triggered\BillingWorker\BillingWorker.exe.config
...\PackageTmp\app_data\jobs\triggered\EtlWorker\App.Prod.config
...\PackageTmp\app_data\jobs\triggered\EtlWorker\App.Test.config
...\PackageTmp\app_data\jobs\triggered\EtlWorker\EtlWorker.exe.config
...\PackageTmp\Web.config
...\PackageTmp\Web.Test.config
...\PackageTmp\Web.Prod.config
...\PackageTmp\many other files

Web.config 的转换已通过发布到 Azure Web App 任务正确完成。但是,工作人员配置不会自动转换,因此我添加了一个具有以下配置的文件转换任务:

enter image description here

此步骤不起作用,输出如下:

2019-08-14T15:41:01.1435779Z ##[section]Starting: File Transform: config
2019-08-14T15:41:01.1576716Z ==============================================================================
2019-08-14T15:41:01.1576853Z Task : File transform
2019-08-14T15:41:01.1576932Z Description : Replace tokens with variable values in XML or JSON configuration files
2019-08-14T15:41:01.1576994Z Version : 1.156.0
2019-08-14T15:41:01.1600786Z Author : Microsoft Corporation
2019-08-14T15:41:01.1600885Z Help : https://learn.microsoft.com/azure/devops/pipelines/tasks/utility/file-transform
2019-08-14T15:41:01.1600986Z ==============================================================================
2019-08-14T15:41:01.6339900Z ##[warning]Unable to apply transformation for the given package. Verify the following.
2019-08-14T15:41:01.6351367Z ##[warning]Unable to apply transformation for the given package. Verify the following.
2019-08-14T15:41:01.8369297Z Initiated variable substitution in config file :
...
... many lines about variable subsitution
...

这个输出看起来是错误的,因为它产生警告而没有声明解释。如何解决此警告?

最佳答案

问题在于文件转换任务强烈依赖于两个文件的名称 - 正在转换的文件和包含转换规则的文件。需要严格的命名约定,可以用以下文字描述:

A template named Name.xml can be transformed only by files named Name.Debug.xml, Name.Release.xml, and more general - Name.{anything-here}.xml.

这里发生的情况是,App.config 文件在构建期间被重命名为 {YourApplicationName}.exe.config,因此使用 App.Debug.config 进行转换 失败。

我看到两种解决方法:

<小时/>

1。保留原来的名称App.config

a.在项目文件中,将 App.config 文件的属性设置为 复制到输出目录:始终复制

b.使用参数设置“文件转换任务”-transform *.Debug.config -xml *.config -result {YourApplicationName}.exe.config

c(可选)。如果您未在任务中指定 -result,则需要设置另一个任务,将 App.config 重命名为 {YourApplicationName}.exe.config after 转换已完成(例如使用命令 copy App.config {YourApplicationName}.exe.config/Y 的命令行任务)

<小时/>

2。编写自定义转换器脚本

a.将压缩包解压到临时文件夹

b.使用 Powershell 转换文件(利用代理上安装的 Microsoft.Web.XmlTransform.dll)

c.再次压缩并替换原来的zip。

关于azure - 文件转换任务无法转换压缩包上的 XML 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57498234/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com