Ошибка при попытке использовать EntityFramework 7 + SQLite в OSX

Я пытаюсь использовать EntityFramework 7 + SQLite в примере приложения с .Net Core в среде Mac OSX. Я установил Mono 4.0.2 и .Net Version Manager, это результат моей команды "dnvm list":

   1.0.0-beta7-12274    coreclr x64  darwin
   1.0.0-beta6          mono         linux/darwin    default
   1.0.0-beta7-12274    mono         linux/darwin
*  1.0.0-beta7-12275    mono         linux/darwin

При попытке выполнить некоторую EntityFramework.Command возникает следующая проблема:

System.TypeLoadException: Could not load type 'Microsoft.Framework.Runtime.ILibraryInformation' from assembly 'Microsoft.Framework.Runtime.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

Полный стек:

System.TypeLoadException: не удалось загрузить тип «Microsoft.Framework.Runtime.ILibraryInformation» из сборки «Microsoft.Framework.Runtime.Abstractions, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null». в Microsoft.Data.Entity.Commands.Program.Execute (System.String startupProject, System.Func1 invoke) [0x00000] in <filename unknown>:0 at Microsoft.Data.Entity.Commands.Program.AddMigration (System.String name, System.String context, System.String startupProject) [0x00000] in <filename unknown>:0 at Microsoft.Data.Entity.Commands.Program+<>c__DisplayClass10_1.<Main>b__7 () [0x00000] in <filename unknown>:0 at Microsoft.Framework.Runtime.Common.CommandLine.CommandLineApplication.Execute (System.String[] args) [0x00000] in <filename unknown>:0 at Microsoft.Data.Entity.Commands.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute (System.Reflection.Assembly assembly, System.String[] args, IServiceProvider serviceProvider) [0x00000] in <filename unknown>:0 at Microsoft.Framework.ApplicationHost.Program.ExecuteMain (Microsoft.Framework.Runtime.DefaultHost host, System.String applicationName, System.String[] args) [0x00000] in <filename unknown>:0 at Microsoft.Framework.ApplicationHost.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute (System.Reflection.Assembly assembly, System.String[] args, IServiceProvider serviceProvider) [0x00000] in <filename unknown>:0 at dnx.host.Bootstrapper.RunAsync (System.Collections.Generic.List1 args, IRuntimeEnvironment env, System.Runtime.Versioning.FrameworkName targetFramework) [0x00000] в: 0


person Magnum Rocha    schedule 29.07.2015    source источник


Ответы (2)


ILibraryInformation недавно был переименован, и используемая вами бета-версия DNX 7, вероятно, включает это изменение: убедитесь, что в вашем файле project.json есть ссылки на последние пакеты бета-версии 7.

Вы можете использовать подстановочный знак для ссылки на последнюю версию:

"dependencies": {
    "EntityFramework.Sqlite": "7.0.0-*"
}
person Kévin Chalet    schedule 29.07.2015
comment
Спасибо @Pinpoint, я поставил здесь еще один ответ на этот вопрос с подробной информацией, не могли бы вы проверить ?? - person Magnum Rocha; 29.07.2015

Из-за переименования проектов ночные сборки в настоящее время не работают. Чтобы использовать только бета-версию 6, вам может потребоваться выполнить следующие действия:

  • Удалить ~/.dnx/packages. Некоторые из них могут содержать смесь ссылок после и до переименования.
  • Убедитесь, что вы не используете ночную ленту nuget (myget.org)
  • dnvm use 1.0.0-beta6
  • Убедитесь, что вы используете "EntityFramework.Commands": "7.0.0-beta6" и "EntityFramework.Sqlite": "7.0.0-beta6" в project.json.
  • Следуйте обходным путям в руководстве по началу работы с OS X. .
person natemcmaster    schedule 29.07.2015