Отдельное развертывание SQL Server Compact 4.0 с Entity Framework 6.0 и NuGet

deployment entity-framework-6 nuget-package sql-server-ce

Вопрос

У меня стандартная настройка проекта WPF с Entity Framework 6 и SQL Server Compact 4.0. Когда я создаю проект, все необходимые файлы для развертывания SQL Server CE корректно копируются в папку Release , включая System.Data.SqlServerCe.dll .

Но запуск проекта на машине без установленного SQL Server Compact вызывает System.IO.FileLoadException .

В моей среде разработки находится System.Data.SqlServerCe.dll загруженный из GAC. Я нашел эту ссылку, где объясняются номера версий DLL: http://technet.microsoft.com/en-us/library/gg213826.aspx

Я предположил, что версия сборщика формы System.Data.SqlServerCe.dll NuGet равна 4.0.0.0.

Поэтому я вручную изменил ссылку System.Data.SqlServerCe.dll в своем проекте на файл 4.0.0.1 из частной папки и скопировал System.Data.SqlServerCe.dll 4.0.0.1 на производственный компьютер.

Я изменил app.config следующим образом:

  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SqlServerCe.4.0" />
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
  </system.data>

Теперь я получаю это исключение на машине разработки:

Приведенное соединение не относится к типу «SqlCeConnection».

На производственной машине я получаю System.Data.Entity.Core.EntityException .

Есть ли шанс получить частное развертывание, работающее с NuGet и EF 6? Или необходимо скопировать вручную все файлы в x86, amd64 папок?

Принятый ответ

System.Data.Entity.Core.EntityException уже было проблемой в моем приложении, я также забыл изменить имя БД после развертывания.

Я следил за этим руководством и сейчас работает:

http://erikej.blogspot.sk/2013/11/entity-framework-6-sql-server-compact-4_25.html



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему