Builder.SetBasePath(Directory.GetCurrentDirectory()) создает неверный путь (смесь Windows и Linux) для изолированного отC#

Место общения программистов C#
Anonymous
Builder.SetBasePath(Directory.GetCurrentDirectory()) создает неверный путь (смесь Windows и Linux) для изолированного от

Сообщение Anonymous »

Я развернул приложение-функцию Azure в Linux с помощью .NET 8 (dotnet-isolated).
При настройке конфигурации приложения я начинаю с установки базового пути с помощью Directory.GetCurrentDirectory().
Однако во время выполнения (только Azure, а не локально!) файл appsettings.json найти невозможно. Сгенерированный путь представляет собой комбинацию Windows и Linux: '/tmp/functions\standby\wwwroot/appsettings.json'
Почему я наблюдаю такое поведение и как можно это можно исправить?
Ошибка:
Unhandled exception. System.IO.FileNotFoundException: The configuration file 'appsettings.json' was not found and is not optional. The expected physical path was '/tmp/functions\standby\wwwroot/appsettings.json'.

Код:
var host = new HostBuilder()
.ConfigureFunctionsWebApplication()
.ConfigureAppConfiguration(builder =>
{
var environment = Environment.GetEnvironmentVariable("ENVIRONMENT") ?? "development";

builder.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
})
...


Подробнее здесь: https://stackoverflow.com/questions/790 ... d-path-mix

Вернуться в «C#»