ASP.NET Core 2 Установить базовый путь для элемента, расположенного в другом приложении

JianYA спросил: 07 октября 2018 в 11:09 в: asp.net

Это структура моей программы:

  • App.UI
  • App.ClassLibrary

Это файл 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 '.

0 ответов