Проблема с доступом к файлу базы данных SQL Compact в 32-битной Vista - PullRequest
2 голосов
/ 12 марта 2010

Я создаю приложение C # Winforms / .NET 3.5 / Visual Studio 2008, которое использует SQL Server Compact 3.5 SP1.После создания проекта setup / msi и развертывания приложения на чистой машине с XP все работает нормально.Однако, когда я устанавливаю его на 32-разрядную машину Vista, я получаю сообщение об ошибке ниже:

System.DllNotFoundException: Unable to load DLL 'sqlceme35.dll': The specified module could not be found

Приложение устанавливается нормально, и ошибка возникает, когда я запускаю .exe.В обоих случаях файл System.Data.SqlServerCe.dll находится в каталоге приложения вместе с exe.Я часами гуглил это, пытаясь отследить проблему.До сих пор я обнаружил, что это известная проблема в 64-битной Vista, но я не могу найти никого, кто имеет эту проблему в 32-битной Vista.После получения проблемы в Vista я изменил целевую платформу на x86, как и предлагали люди с 64-битной проблемой, но это не решило проблему.SQL Compact 3.5 является 32-битным, поэтому я не понимаю, почему это происходит в 32-битной Vista.

1 Ответ

0 голосов
/ 11 сентября 2011

Ладно, официального ответа на этот вопрос не было, поэтому я отвечу сам, хотя @ErikEJ упомянул об этом в комментарии. Проблема была в том, что мне нужно было упаковать все dll-файлы SQL CE (перечислены ниже), а не только System.Data.SqlServerCe.dll. Как только я это сделал, проблема была решена.

  • sqlceca35.dll
  • sqlcecompact35.dll
  • sqlceer35en.dll
  • sqlceoledb35.dll
  • sqlceqp35.dll
  • sqlcese35.dll
...