ASPNet Core - разработчик macOS не может найти настройки приложений и wwwroot - PullRequest
0 голосов
/ 06 декабря 2018

Я начинаю новый проект с другом, я буду использовать Windows, и он работает на MacOS.

В проекте используется EntityFrameworkCore, и я настраиваю строку подключения следующим образом (внутри класса контекста):

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
        optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));

    base.OnConfiguring(optionsBuilder);
}

configuration - это внедренный сервис типа IConfiguration.

В Windows это работает отлично, но Mac не может сказать, что не может использовать "нуль "как значение.GetConnectionString действительно возвращает ноль для Mac.

Я нашел много мест, где говорилось, что мне нужно использовать UseContentRoot в программе .cs:

public static void Main(string[] args)
{
    WebHost.CreateDefaultBuilder(args)
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .Build()
        .Run();
}

Но это не работаетна Mac в любом случае.

Кроме того, в macOS Directory.GetCurrentDirectory() вернет <ProjectRoot>/bin/debug/net462 и Windows вернет <ProjectRoot>.

Так что я предполагаю, что он не находит appsettings.json внутри этогопуть и, следовательно, он терпит неудачу.

Я также проверил, могу ли я получить доступ к wwwroot, и я не могу.Всегда используется bin вместо корня проекта.

Есть идеи, как это исправить?

Спасибо.

PS

Отличается от вопроса, помеченного как «дубликат из»:

Там он не использует UseContentRoot и IConfiguration для получения> connectionString.Я видел это, и это не работает

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