繁体   English   中英

Nuget.config 中的环境变量替换

[英]Environment Variable replacement in Nuget.config

我们有带有 Nuget.config 文件的 dotnet 核心应用程序。 作为 azure devops CI 管道的一部分,我们想要读取和替换 Nuget.config 文件中的环境变量。 环境/管道变量(USERNAME 和 PWD)在 CI 管道的“Build Docker Image”任务中配置。 azure devops CI 构建服务器在 Ubuntu 机器上运行。

MAC/Linux 中的环境变量应按照文档以下列方式替换。

Nuget.config 中的语法“$USERNAME”在这里不起作用。 当我们替换 static 用户名和密码时,它工作正常。

Nuget.config

<?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>

我们已经使用以下文档尝试了以下语法,但它们都不起作用:$USERNAME, $(USERNAME), %USERNAME%, $USERNAME$

用 azure devops 管道替换 Nuget.config 文件中的环境变量的正确语法或方法是什么?

您可以改用Replace Tokens任务,并将其配置为处理您的 nuget.config 文件。

但是,您可能需要考虑使用 Nuget 服务连接,因为这样可以避免将 Nuget 凭据保存为管道变量,并且还可以使它们更安全,因为它们在配置文件中替换时将以纯文本形式显示。

有关在 Azure DevOps 中使用服务连接的详细信息,请参阅 Microsoft 文档: https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml= #sep-nuget

我相信我们的 nuget 文档需要更正。 无论平台如何,都使用相同的字符进行环境变量替换:%myPW% 我在 Ubuntu 18 上使用 dotnet.exe 3.0.100 测试成功。*

请就我分配给我的跟踪问题与我联系: https://github.com/NuGet/Home/issues/8662

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM