我有针对特定环境(dev、qa、uat)的特定配置文件和另一个根 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
Run Code Online (Sandbox Code Playgroud)
另一种方法:
- 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'
Run Code Online (Sandbox Code Playgroud)
我尝试了各种组合,例如重命名然后复制和复制然后重命名,将内容复制到新的 web.config 文件等究竟应该使用什么?
Hey*_*man 10
- 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"
Run Code Online (Sandbox Code Playgroud)
这是实现您想要的目标的非常直接的方法。如果您愿意,您甚至可以在目标路径中使环境(dev、qa、uat)动态化。
小智 9
你试过了吗
- task: CmdLine@2
inputs:
script: ren $(build.artifactstagingdirectory)\MainWebApi\Web.QA.config
$(build.artifactstagingdirectory)\MainWebApi\web.config
Run Code Online (Sandbox Code Playgroud)
您可以遵循以下文档:
具体应该用什么?
您可以使用名为“文件转换”的内置任务将 web.<environment>.config 转换为 web.config。然后,您可以使用“复制文件”任务将 web.config 复制到$(build.artifactstagingdirectory).
以下是详细步骤:
步骤1。您需要添加一个转换文件,该文件与源文件位于同一路径中。
如果您不想对结果文件进行任何更改,只需创建一个包含一行脚本的 xml 文件:
<?xml version="1.0"?>
Run Code Online (Sandbox Code Playgroud)
如果要进行一些更改,请将更改写入转换文件中。这是一个例子。
第2步。在管道中,搜索并添加“文件转换”任务。
您需要勾选“XML转换”并在“转换规则”中编写以下脚本:
-transform {transform file} -xml {source file} -result Web.config
Run Code Online (Sandbox Code Playgroud)
步骤3. 搜索并添加“复制文件”任务。将 Web.config 文件复制到$(build.artifactstagingdirectory).
这是步骤 2 和步骤 3 的 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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5892 次 |
| 最近记录: |