System.Data.SQLite.EF6.Migrations: загрузить неправильную версию, которая не существует (Entity Framework 6, НЕ core) - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь использовать первый подход к коду для настройки проекта. net 4.5 с библиотеками

  • System.Data.SQLite
  • System.Data.SQLite. EF6
  • System.Data.SQLite.EF6.Migrations

У меня все успешно настроено в песочнице PO C, и все работает нормально. Следуя точно такой же конфигурации в производственном проекте, я получил ошибку при использовании команды Add-Migration.

Это показывает, что ему нужна Версия = 1.0.104.0, но проект использует 1.0.112.1. Соответствующие библиотеки находятся в папке bin, поэтому они должны читаться правильно. Кроме того, я проверил все возможные места и убедился, что все файлы dll 1.0.112.1, включая GA C и csproj. Там не должно быть места, используя неправильную версию SQLite.EF6

System.IO.FileLoadException: Could not load file or assembly 'System.Data.SQLite.EF6, Version=1.0.104.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'System.Data.SQLite.EF6, Version=1.0.104.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139'
   at System.Data.SQLite.EF6.Migrations.SQLiteMigrationSqlGenerator..ctor()
   at School.ExcelAddin.Data.SQLiteDB.Configuration..ctor() in C:\School.ExcelAddin.Data.SQLiteDB\Configuration.cs:line 16
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Data.Entity.Migrations.Utilities.MigrationsConfigurationFinder.FindMigrationsConfiguration(Type contextType, String configurationTypeName, Func`2 noType, Func`3 multipleTypes, Func`3 noTypeWithName, Func`3 multipleTypesWithName)
   at System.Data.Entity.Infrastructure.Design.Executor.GetMigrationsConfiguration(String migrationsConfigurationName)
   at System.Data.Entity.Infrastructure.Design.Executor.ScaffoldInternal(String name, DbConnectionInfo connectionInfo, String migrationsConfigurationName, Boolean ignoreChanges)
   at System.Data.Entity.Infrastructure.Design.Executor.Scaffold.<>c__DisplayClass0_0.<.ctor>b__0()
   at System.Data.Entity.Infrastructure.Design.Executor.OperationBase.<>c__DisplayClass4_0`1.<Execute>b__0()
   at System.Data.Entity.Infrastructure.Design.Executor.OperationBase.Execute(Action action)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Could not load file or assembly 'System.Data.SQLite.EF6, Version=1.0.104.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

1 Ответ

0 голосов
/ 22 апреля 2020

Я нашел решение сам. System.Data.SQLite.EF6.Migration s из nuget использует другую (более старую) версию System.Data.SQLite.EF6 и System.Data.SQLite из репозитория nuget. При обновлении экземпляра SQLiteMigrationSqlGenerator он указывает на более старую версию System.Data.SQLite.EF6 (v1.0.104.0), которая конфликтует с текущей загруженной сборкой (1.0. 112,1).

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