发布管道中的替换令牌任务不会替换文件中的令牌

问题描述 投票:0回答:1

我是 Azure DevOps 版本的新手。我正在尝试接收一个包含 zip 文件的工件,其中有一个 config.json 文件,其中包含一个简单的变量。

{"apiUrl": "#{apiURL}#"}

这将作为 IIS 应用程序部署在服务器中。我已经能够在服务器的 IIS 中发布该应用程序。现在的问题是需要更改此变量以反映服务器中 api 的新路径。

我正在尝试以下操作:

我为组创建了变量,也在管道中创建了变量。

首先我提取文件

然后我使用替换令牌任务替换令牌:

然后我将文件重新压缩到对应的位置:

然后部署到服务器:

当版本运行时,它会向我显示进行更改时的替换日志。

但是服务器仍然向我显示错误的文件。

我尝试删除zip文件,移动任务的顺序,尝试直接在服务器上替换(我惨败)。如果有人知道我缺少什么。请帮忙。

azure-devops azure-pipelines-release-pipeline
1个回答
0
投票

我已经检查了发布管道任务定义。

问题的原因是存档文件任务将压缩包含文件夹名称的文件。

以下是您的zip包中的文件结构:

-- 876 #$(build.buildid) foldername
  -- otherfiles
  -- config.json

在这种情况下,当您将zip包部署到IIS服务器时,config.json文件(更新的apiUrl值)将显示在876文件夹下,而不是根文件夹下。它不会更新根文件夹中的 config.json 文件

从您的屏幕截图中,您正在检查网站根文件夹中的 config.json 文件。因此,变量的值不会改变。

您可以检查是否存在文件夹名称:876,并检查文件夹876中的config.json文件值是否正确。

要解决此问题(更改根文件夹中的 config.json),您需要禁用选项:存档文件任务中的将根文件夹名称添加到存档路径

例如:

它将排除根文件夹名称和文件结构,如下所示:

-- otherfiles
-- config.json

在这种情况下,它将更新网站根文件夹中的 config.json 文件。

有关更多详细信息,您可以参考此文档:ArchiveFiles@2 - 存档文件 v2 任务

© www.soinside.com 2019 - 2024. All rights reserved.