我有针对特定环境(dev,qa,uat)的特定配置文件和另一个root web.config。部署的代码读取web.config。因此,我一直尝试在Azure Pipelines中复制内容或重命名文件。
- task: CopyFiles@2
displayName: 'Copy Specific Config'
inputs:
SourceFolder: 'Client.WebApi.Core/Configs/Web.QA.config'
TargetFolder: '$(build.artifactstagingdirectory)\MainWebApi'
- task: CmdLine@2
inputs:
script: rename $(build.artifactstagingdirectory)\MainWebApi\Web.QA.config
$(build.artifactstagingdirectory)\MainWebApi\web.config
另一种方法:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
copy-item -path Client.WebApi.Core/Configs/Web.QA.Config -destination Client.WebApi.Core/web.config
TargetFolder: '$(build.artifactstagingdirectory)/MainWebApi'
我尝试了各种组合,例如重命名,复制和重命名,然后将内容复制到新的web.config文件中,等等。 到底应该使用什么?
答案 0 :(得分:1)
您尝试过
- task: CmdLine@2
inputs:
script: ren $(build.artifactstagingdirectory)\MainWebApi\Web.QA.config
$(build.artifactstagingdirectory)\MainWebApi\web.config
您可以遵循以下文档:
答案 1 :(得分:0)
究竟应该使用什么?
您可以使用名为File transform的内置任务将web。<环境> .config转换为web.config。然后,您可以使用“复制文件”任务将web.config复制到$(build.artifactstagingdirectory)
。
详细步骤如下:
步骤1。您需要添加一个转换文件,该文件与源文件的路径相同。
如果您不想对结果文件进行任何更改,只需创建带有一行脚本的xml文件:
<?xml version="1.0"?>
如果要进行一些更改,请将更改写入转换文件。这是example。
步骤2。在管道中,搜索并添加“文件转换”任务。
您需要勾选“ XML转换”,并在“转换规则”中,编写以下脚本:
-transform {transform file} -xml {source file} -result Web.config
第3步。搜索并添加“复制文件”任务。将Web.config文件复制到$(build.artifactstagingdirectory)
。
这是step2和step3的Yaml脚本。
steps:
- task: FileTransform@1
displayName: 'File Transform: '
inputs:
folderPath: '{folder path}'
enableXmlTransform: true
xmlTransformationRules: '-transform {transform file} -xml {source file} -result Web.config'
fileType: xml
- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: '{folder path}'
Contents: Web.config
TargetFolder: '$(build.artifactstagingdirectory)\MainWebApi'
答案 2 :(得分:0)
- task: PowerShell@2
displayName: 'Copy Specific Config'
inputs:
targetType: inline
script: Copy-Item -Path "Client.WebApi.Core/Configs/Web.QA.Config" -Destination "$(build.artifactstagingdirectory)/MainWebApi/web.config"
这是实现您想要的非常直接的方式。如果您愿意,您甚至可以在 Destination 路径中使环境(dev、qa、uat)动态化。