UseSqlServer отсутствует и конфликтующие ссылки? - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь следовать видео Entity Framework Core в библиотеке классов .NET Core 2.1 DAL. В DbContext.OnCofiguring помещен следующий код:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        base.OnConfiguring(optionsBuilder);

        optionsBuilder.UseSqlServer("Server*.");
    }

Проблема в том, что UseSQLServer отсутствует? С это предлагается добавить Microsoft.EntityFrameworkCore.SqlServer nuget. При этом у меня возникают конфликты версий, которые я не знаю, как решить:

Код серьезности Описание Состояние подавления строки файла проекта Ошибка CS1061 «DbContextOptionsBuilder» не содержит определения для 'UseSqlServer' и недоступного метода расширения 'UseSqlServer' принятие первого аргумента типа 'DbContextOptionsBuilder' может быть найдено (отсутствует директива using или сборка ссылка?) DataAccessLayer

-

Код серьезности Описание Состояние подавления строки файла проекта Ошибка при восстановлении пакета. Откат изменений пакета для 'DataAccessLayer'.

-

Код серьезности Описание Состояние подавления строки файла проекта Ошибка NU1605 Обнаружено понижение пакета: Microsoft.Extensions.Configuration от 2.2.0 до 2.1.1. Ссылка на пакет прямо из проекта, чтобы выбрать другую версию.
DataAccessLayer -> Microsoft.EntityFrameworkCore.SqlServer 2.2.3 -> Microsoft.EntityFrameworkCore.Relational 2.2.3 -> Microsoft.EntityFrameworkCore 2.2.3 -> Microsoft.Extensions.Logging 2.2.0 -> Microsoft.Extensions.Configuration.Binder 2.2.0 -> Microsoft.Extensions.Configuration (> = 2.2.0) DataAccessLayer -> Microsoft.Extensions.Configuration (> = 2.1.1) DataAccessLayer

-

Код серьезности Описание Состояние подавления строки файла проекта Ошибка NU1605 Обнаружено понижение пакета: Microsoft.Extensions.DependencyInjection от 2.2.0 до 2.1.1. Ссылка на пакет прямо из проекта, чтобы выбрать другой версия. DataAccessLayer -> Microsoft.EntityFrameworkCore.SqlServer 2.2.3 -> Microsoft.EntityFrameworkCore.Relational 2.2.3 -> Microsoft.EntityFrameworkCore 2.2.3 -> Microsoft.Extensions.DependencyInjection (> = 2.2.0) DataAccessLayer -> Microsoft.Extensions.DependencyInjection (> = 2.1.1) DataAccessLayer

-

Я подозреваю, что в проекте используется пара пакетов nuget, и некоторые из них ссылаются на другую версию другого nuget или dll.

Он предлагает ссылаться на пакет напрямую? Означает ли это, что я должен ссылаться на DLL вручную? Где взять dll?

1 Ответ

0 голосов
/ 24 марта 2019

Важность по умолчанию для NU1605 - предупреждение, и, поскольку вы видите это как ошибку, это означает, что ваш проект включил обработку ошибок как предупреждений.

Причина понижения пакета, вероятно, связана с правилом ближайших побед NuGet . Единственный способ избежать понижения - это добавить PackageReference к понизившемуся пакету в ваш проект, чтобы выбранная версия всегда была ближайшей, а временные зависимости никогда не могли понизить ее.

В противном случае вы прекращаете стрелять себе в ногу, отключив «обрабатывать все предупреждения как ошибки» и перечислять только те конкретные предупреждения, которые вы хотите рассматривать как ошибки. Или добавьте NU1605 в список предупреждений для подавления (<NoWarn> в csproj).

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