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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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