【问题标题】:Environment Variable replacement in Nuget.configNuget.config 中的环境变量替换
【发布时间】:2019-11-11 13:11:18
【问题描述】:

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

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

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

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 文件中的环境变量的正确语法或方法是什么?

【问题讨论】:

  • 为什么要这样做而不是创建工件提要并使用内置任务从工件提要中恢复?或者创建一个指向外部提要的 NuGet 服务连接并从该提要恢复?
  • @Kiransholi Kiran 好几天没有收到您的回复,您能否分享一下有关此问题的最新信息?如果您有任何疑问,请随时在此处分享。

标签: azure docker azure-devops nuget


【解决方案1】:

您可以改用 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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢罗伯。我们有带有 dotnet core 2.2 的 Ubuntu/linux docker 映像,目标构建服务器是 Unbuntu 18。* 它可以与此配置一起使用吗?
    • 你好 Rob,我们已经尝试使用语法 %USERNAME% 并且目标构建服务器是 Ubuntu 18.* 和 Docker Image 文件,这不起作用。 @Rob Relyea
    • 请与我一起解决我在 NuGet/Home/8662 上面提到的问题。 (我们调用 dotnet 核心 API 来获取环境变量……我们可能需要查看这些文档以了解为什么您的环境变量没有效果。我很高兴与您进行讨论...关于那个问题。请在此处添加您的详细信息。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2014-06-17
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多