Jac*_*cek 2 azure azure-pipelines
我正在研究发布管道,它将对 App Service Worker 配置执行转换,然后将发布工作人员 + 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
Run Code Online (Sandbox Code Playgroud)
的转换Web.config是按Publish to Azure Web App任务正确完成的。但是,worker 配置不会自动转换,因此我添加了一个File Transform具有以下配置的任务:
这一步不起作用,这是输出:
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://docs.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
...
Run Code Online (Sandbox Code Playgroud)
这个输出看起来是错误的,因为它在没有声明解释的情况下产生警告。如何解决此警告?
问题是文件转换任务强烈依赖于两个文件的名称——一个被转换的文件和一个包含转换规则的文件。需要严格的命名约定,可以用以下词语描述:
命名模板
Name.xml只能由指定的文件转化Name.Debug.xml,Name.Release.xml以及更普遍的-Name.{anything-here}.xml。
这里发生的事情是该App.config文件{YourApplicationName}.exe.config在构建过程中被重命名,因此使用App.Debug.config失败的转换。
我看到 2 个解决方法:
App.config一种。在项目文件中,将App.config文件的属性设置为Copy to output directory: Copy always
湾 使用 args 设置“文件转换任务”-transform *.Debug.config -xml *.config -result {YourApplicationName}.exe.config
c(可选)。如果你没有-result在任务中指定,你需要设置另一个任务,在转换完成{YourApplicationName}.exe.config 后将App.config 重命名为(例如带有 command 的命令行任务copy App.config {YourApplicationName}.exe.config /Y)
一种。将压缩包解压到临时文件夹中
湾 使用 Powershell 转换文件(利用安装在代理上的 Microsoft.Web.XmlTransform.dll)
C。再次拉上拉链并更换原来的拉链。
| 归档时间: |
|
| 查看次数: |
3815 次 |
| 最近记录: |