Kir*_*ran 5 azure nuget docker azure-devops
我们有带有 Nuget.config 文件的 dotnet 核心应用程序。作为 azure devops CI 管道的一部分,我们希望读取和替换 Nuget.config 文件中的环境变量。环境/管道变量(USERNAME 和 PWD)在 CI 管道的“构建 Docker 映像”任务中配置。azure devops CI 构建服务器在 Ubuntu 机器上运行。
MAC/Linux 中的环境变量应按照本文档按以下方式替换。
Nuget.config 中的语法“$USERNAME”在这里不起作用。当我们替换静态用户名和密码时,它工作正常。
配置文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="abcFeed" value="https://somedevops.com/xyz/packaging/someApps/nuget/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
<packageSourceCredentials>
<abcFeed>
<add key="Username" value="$USERNAME"/>
<add key="ClearTextPassword" value="$PWD"/>
</abcFeed>
</packageSourceCredentials>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我们已经尝试使用以下文档的语法,它们都不起作用:$USERNAME, $(USERNAME), %USERNAME%, $USERNAME$
使用 azure devops 管道替换 Nuget.config 文件中的环境变量的正确语法或方法是什么?
您可以改为使用Replace Tokens任务,并配置它来处理您的 nuget.config 文件。
但是,您可能需要考虑使用 Nuget 服务连接,因为这样可以避免将 Nuget 凭据保存为管道变量,并且还可以使它们更安全,因为它们在配置文件中替换时将以纯文本形式公开。
有关在 Azure DevOps 中使用服务连接的更多信息,请参阅 Microsoft 文档:https: //learn.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints ?view=azure-devops&tabs=yaml #sep-nuget