Это моя структура программы:
Это Program.cs, расположенный в App.UI. Можно ли установить базовый путь в App.ClassLibrary?
public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(ConfigurationManager.GetBasePath())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true)
.Build();
Предполагается использовать файл appsettings.json, расположенный там, вместо основного приложения.
Вот что я сделал:
В моем App.ClassLibrary у меня есть этот класс
public static class ConfigurationManager
{
public static IConfiguration AppSetting { get; }
public static string GetBasePath()
{
return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}
static ConfigurationManager()
{
AppSetting = new ConfigurationBuilder()
.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.Build();
}
}
Однако, когда я запускаю приложение, я получаю следующее исключение:
FileNotFoundException: файл конфигурации 'appsettings.json' был
не найден и не является обязательным. Физический путь
. 'C: \ Users \ Пользователь \ Source \ Repos \ AppStore \ App \ Bin \ Debug \ netcoreapp2.1 \ appsettings.json'