Azure DevOps传统发布界面能否用单个XDT转换任务处理多配置文件?
合并Azure DevOps传统发布界面中的XDT配置转换任务
可以将这5个独立的qetza.xdttransform.xdttransform-task.xdttransform任务合并为单个任务完成,推荐使用PowerShell脚本任务实现批量处理,具体操作如下:
- 在传统发布界面中移除原有5个XDT转换任务,添加一个PowerShell脚本任务
- 在脚本任务的「脚本」输入框中填入以下代码:
# 定义需处理的目录与目标配置文件映射 $transformTasks = @( @{ WorkingFolder = "$(System.DefaultWorkingDirectory)/sources/A1"; TargetFile = "A1.exe.config" }, @{ WorkingFolder = "$(System.DefaultWorkingDirectory)/sources/1A"; TargetFile = "1A.exe.config" }, @{ WorkingFolder = "$(System.DefaultWorkingDirectory)/sources/Three"; TargetFile = "Three.exe.config" }, @{ WorkingFolder = "$(System.DefaultWorkingDirectory)/sources/4a"; TargetFile = "4a.exe.config" }, @{ WorkingFolder = "$(System.DefaultWorkingDirectory)/sources/ConsoleApp1"; TargetFile = "ConsoleApp1.exe.config" } ) # 遍历执行所有XDT转换 foreach ($task in $transformTasks) { $sourcePath = Join-Path -Path $task.WorkingFolder -ChildPath "app.tokenize.config" $targetPath = Join-Path -Path $task.WorkingFolder -ChildPath $task.TargetFile # 调用XDT转换工具 & "$env:AGENT_TOOLSDIRECTORY/qetza.xdttransform/xdttransform-task/xdttransform.exe" ` -s "$sourcePath" ` -t "$targetPath" ` -d "$task.WorkingFolder" # 验证转换结果 if ($LASTEXITCODE -ne 0) { Write-Error "配置转换失败:路径 $($task.WorkingFolder)" exit 1 } Write-Host "配置转换完成:路径 $($task.WorkingFolder)" }
注意事项:
- 脚本通过遍历预定义的目录映射,一次性完成所有转换操作
- 需确保发布代理已正确安装qetza XDT转换工具(原任务可正常运行则无需额外配置)
- 脚本会校验每个转换的执行状态,若任一转换失败会立即终止任务并抛出错误
内容的提问来源于stack exchange,提问作者jmoreno
相关产品推荐
相关产品推荐

