【发布时间】:2019-12-30 16:11:18
【问题描述】:
我一直在使用 Replace Tokens(来自 VS Marketplace),到目前为止,它对 web.config 文件中的动态连接字符串替换非常有用。它的工作方式,在 Web.Release.config 我有这样的结构:
<connectionStrings>
<add name="Default"
connectionString="__AzureDBConnectionString__"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
当我在 VSTS 中开始发布时,它会将这个标记(在“__”之间)替换为发布管道中的变量值。所以,我总是有一个与相关环境相对应的连接字符串。 昨天我决定在这个文件中添加更多变量,希望它也能正常工作,因为出于安全原因,我有很多应该参数化的密钥。 好吧,如果我在文件中添加这样的内容:
<appSettings>
<add key="mailToken" value="__mailToken__" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
它不起作用。在部署的 web.config 中,我看到 value="mailToken" 即它没有被存储在发布管道中的变量替换(对于连接字符串)。 经过大约一天的痛苦,我发现唯一可以像这样替换的参数是连接字符串(因为这是构建“Web.SetParameters.xml”文件自动生成的唯一参数集)。正如一些消息来源所建议的那样,我尝试使用 parameter.xml 文件,但没有成功。重要的是所有变量都取自发布管道变量列表(而不是在配置文件中硬编码)。 有人可以建议一种正确的方法来替换 appSetting 中的值或其他解决方法(没有替换令牌任务等)吗?
【问题讨论】:
-
你解决了这个问题吗?
标签: azure-devops azure-pipelines azure-pipelines-release-pipeline