在构建过程中,我需要查找一些变量并将其替换到配置文件中。我正在使用vsts-regex-tasks来做到这一点。它适用于用户创建的变量,但是当尝试引用Azure defined variables时,似乎未对该变量求值。有任何想法吗?
Example
Find: "RELEASE_NAME"
Replace With: "$(Release.ReleaseName)"
Result: "$(Release.ReleaseName)"
编辑:
我正在尝试在构建管道中使用Release变量,而我正在使用的插件无法读取任何Azure定义的变量,因此切换到“替换令牌”的过程非常吸引人,并减少了替换的构建步骤数量多个变量。
答案 0 :(得分:1)
首先,如果您以前使用带有变量$(Release.ReleaseName)
的表达式的方法位于 YAML 中,请害怕说在YAML定义中不能使用发布变量。尽管我们将发布定义集成到了YAML中,但是实际上,它的环境仍然属于 Build 。
请参见以下doc中的说明:
所有这些发行变量仅可用于经典发行渠道。
当您尝试使用 YAML 定义和配置发布管道时,只能用doc中列出的变量作为短语。
但是,如果您使用的配置类型是经典而不是YAML,则应首先检查搜索输入文件的路径的值。通常,可以从日志中检查所有问题。
这里我的项目是一个Jmeter测试项目,其配置文件是WebservicePerformanceTest.jmx
。现在,我的示例将在此$(Release.ReleaseName)
文件中将一个服务端口名称替换为.jmx
。
下面是我的本地发布结果,您可以看到它成功替换了变量。
此外,还有另一项任务也可以实现您想要的:Replace token。有关使用的详细步骤,请参阅my previous answer。