1

Хорошо, после недели разочарования я думаю, что пришло время обратиться к экспертам, доступным на всемирной паутине, и, следовательно, StackOverflow.SQL Server Compact 4.0 + Sync Framework 2.1 + Entity Framework 6.1.3 = как?

Что я делаю, это переносить приложение в EF 6.1.3, SQL Server Compact 4.0 с пакетом обновления 1 (SP1) и Sync Framework 2.1. Результаты на самом деле не то, что я горжусь, что за последние несколько дней я, кажется, не быть в состоянии избавиться от известных:

Исключение брошено: «System.MethodAccessException» в Microsoft.Synchronization. Data.SqlServerCe.dll

Дополнительная информация: Покушение по методу 'Microsoft.Synchronization.Data.SqlServerCe.SqlCeClientSyncProvider..ctor() к методу доступа 'System.Data.SqlServerCe.NativeMethods.CreateErrorInstance (IntPtr ByRef)' не удалось ,

Это исключение вызывается конструктором поставщика, который наследует от SqlCeClientSyncProvider.

После того, как вы освоились с использованием SysInternals Process Explorer и журналов слияния, кажется, что сборка схемы синхронизации Microsoft.Synchronization.Data.SqlServerCe не может использовать код, доступный в System.Data.SqlServerCe.

Я пробовал бесчисленные подходы, связанные с проблемой в Интернете, даже если убрать все связанные с ней установки из моей системы и использовать только минимальный минимум, но до сих пор не добился успеха.

Ток голый минимум включает в себя следующие пакеты NuGet:

  • EntityFramework.SqlServerCompact.PrivateDeployment v6.1.3
    Создано ErikJ: обеспечивает приложения могут работать с частным развертыванием SQL Server CE 4.0.0.1.
  • Microsoft.SyncFramework v2.1.0.2
    Darrel Tunnell - устанавливает и поддерживает Microsoft Sync Framework 2.1. Пакеты базовых компонентов, как для x64, так и для x86.
  • Microsoft.SyncFramework.DatabaseProvider v3.1.0.0
    Darrel Tunnell - Устанавливает и поддерживает пакеты Microsoft Sync Framework 2.1 Database Provider, как для x64, так и для x86.

Проблема, тем не менее, все еще существует. :-(

Некоторые детали, которые могут быть интересны:.

Все проекты в решении целевой архитектуры x86 из-за какой-то других ограничений, мы имеем на некоторых курчавыми COM сборок взаимодействия (целая другая подсистема, хотя)

ОС для разработки - это Windows 7, 64 бит. Я даже начинаю думать, что 64-разрядная ОС и 32-разрядный SQL Compact 4.0 могут быть даже мешающими.

Чтобы сформулировать это в конкретном вопросе: как я избавлюсь от MethodAccessException?

Весь вход приветствуется, потому что эта проблема начинает расстраивать меня слишком долго - спасибо заранее!

+0

Какое приложение? Вы пробовали переадресацию? – ErikEJ

+0

Да, это то, что я пытался. Как с 0.0.0.0-4.0.0.1, так и с подходом 4.0.0.0-4.0.0.1, предложенным вами и несколькими другими. Однако я чувствую, что для предлагаемой установки требуется частное развертывание Sync Framework 4.0 и неединственное (то есть установленное) развертывание 3.5. Это предположение основано на том, что Microsoft.Synchronization.Data.SqlServerCe не может справиться с методами/классами, предоставляемыми версией SQL 4.0 4.0.0.1. Однако я не эксперт и пробежал по моим вариантам устранения неполадок, поэтому любые идеи приветствуются! –

+0

Ow, и для вашего вопроса о том, какое приложение: это настольное приложение WFP, работающее под управлением .NET Framework 4.0. –

ответ

0

Sync Framework не поддерживается в SQL CE 4.Попробуйте привязать редирект, как упоминалось в @ErikEJ, и взгляните на это, как это сделать. post

+0

Спасибо за подсказку. Я забыл добавить ссылки, которые я пытался воспроизвести в своем оригинальном посте. –