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

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

  • 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'

1 Ответ

0 голосов
/ 01 ноября 2018

Мне удалось это решить. Оказывается, мне нужно было настроить мои настройки приложений в другом приложении, чтобы они всегда копировались.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...