Хорошо, после недели разочарования я думаю, что пришло время обратиться к экспертам, доступным на всемирной паутине, и, следовательно, 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
?
Весь вход приветствуется, потому что эта проблема начинает расстраивать меня слишком долго - спасибо заранее!
Какое приложение? Вы пробовали переадресацию? – ErikEJ
Да, это то, что я пытался. Как с 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. Однако я не эксперт и пробежал по моим вариантам устранения неполадок, поэтому любые идеи приветствуются! –
Ow, и для вашего вопроса о том, какое приложение: это настольное приложение WFP, работающее под управлением .NET Framework 4.0. –