.NET Core 3.1 应用程序不读取 Azure Pipelines 变量

.NET Core 3.1 app not reading Azure Pipelines variable

我有一个 .NET Core 3.1 测试项目,代码如下:

var configuration = new ConfigurationBuilder()
    .SetBasePath(Environment.CurrentDirectory)
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: false)
    .AddEnvironmentVariables()
    .Build();

然后我在我的一个测试中尝试访问配置值:

var storageAcc = configuration["AzureWebJobsStorage"];

在本地运行良好,因为它使用 appsettings.json,它具有以下内容:

{
  "AzureWebJobsStorage": "UseDevelopmentStorage=true"
}

我现在正尝试通过变量在 Azure Pipelines 中覆盖

但是当我 运行 在 CI 上构建时,我的代码崩溃了,说值是 null

奇怪的是,这个 setup/code 在 .NET Core 2.2 上运行良好,但在我升级到 .NET Core 3.1 时出错。所以想知道 Microsoft.Extensions.Configuration 3.x 升级路径是否有问题? (在网上找不到任何东西)

有人有什么想法吗?

提前致谢!

好的,找到答案了。

TLDR;区分大小写失败

我不得不将 appsettings.json 中的密钥更改为 AZUREWEBJOBSSTORAGE。我想出这个是因为在 Azure Pipelins 上转储环境变量时,我看到变量是大写的(注意:我正在使用 ubuntu 托管代理,它可以在这里发挥作用)。所以,我想如果情况不同的话,这并没有被正确地覆盖。

现在,我不知道这是如何在 .NET Core 2.2 上工作的,但在 .NET Core 3.1 上却没有(我没有接触 Azure Pipelines,只是项目的 SDK)。如果有人碰巧弄明白了,请告诉我!

希望对某人有所帮助。纯属幸运,我想通了:(