SQL Server Компактная ошибка: Не мог загрузить DLL 'sqlceme35.dll'. Указанный модуль не мог быть найден

Я разрабатываю приложение Windows Forms с помощью Visual Studio 2008 C#, который использует базу данных SQL Server Compact 3.5 по клиенту. Клиентом, скорее всего, будет Windows XP на 32 бита или машины Windows Vista. Я использую стандартный проект Windows Installer, который создает файл MSI и setup.exe для устанавливания приложения на клиентской машине. Я плохо знаком с Компактным SQL Server, таким образом, я не должен был распределять клиентскую базу данных как это до настоящего времени. Когда я выполняю setup.exe (на новом Windows XP 32 бита с SP2 и  Internet Explorer 7), он устанавливает прекрасный, но когда я запускаю приложение, я получаю эту ошибку:

Не мог загрузить DLL 'sqlceme35.dll'. Указанный модуль не мог быть найден

Я провел несколько часов, уже ища эту ошибку, но все, что я мог найти, было проблемами, касающимися установки в Windows на 64 бита и ни одном касающемся нормальных 32 битов, которые я использую.

Копии приложений установки все зависимые файлы, которые это нашло в указанный каталог установки, включая System.Data.SqlServerCe.dll файл (версия 3.5.1.0 блока). Файл базы данных находится в каталоге, названном 'данными' от каталога приложения, и строка подключения для него


Некоторые вопросы я имею:

  • Приложение должно смочь найти файл DLL, если это находится в том же каталоге, то есть, локально для приложения, или я должен установить его в GAC? (Если так, я могу использовать Windows Installer для установки файла DLL в GAC?)
  • Есть ли что-либо еще, что я должен распределить с приложением для использования базы данных SQL Server Compact?
  • Существуют другие файлы DLL также, такие как MS interop для экспорта данных к Excel на клиенте. Они должны быть установлены в GAC, или будет определение местоположения их в каталоге приложения, достаточны?

6
задан Peter Mortensen 24 November 2012 в 06:07
поделиться

3 ответа

Вам не нужно, чтобы он был в GAC для запуска SQL Server Compact, и он заберет их из каталога приложения. Есть несколько способов развернуть проект SQL Server Compact. Двумя основными способами являются:

  1. Развертывание распространяемого установщика SQL Server Compact вместе с вашим проектом, но этот способ болезненен и также может быть удален конечным пользователем или обновлен с помощью обновлений Windows и нарушит работу вашего приложения.

  2. Включение файлов DLL в папку приложения. В зависимости от функций SQL Server Compact, которые вы используете (репликация или что-то еще), в папке вашего приложения есть несколько файлов DLL для развертывания.

Если на вашем компьютере установлен SQL Server Compact, скорее всего, они находятся в папке «C: \ Program Files \ Microsoft SQL Server Compact Edition \ v3.5». Их можно добавить в проект в Visual Studio, а затем установить для их типа вывода проекта значение «всегда копировать». И основная ссылка на System.Data.SqlServerCe , которая есть в ссылках на ваш проект, должна иметь для параметра copy local значение true.

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

Если у вас все это установлено, то в вашем установщике проект все, что вам нужно включить, это результат этого проекта, и все в порядке. На мой взгляд, это единственный выход.Это простое развертывание из пары файлов, и вы контролируете, какие версии DLL использует ваше приложение.

Надеюсь, это поможет.

6
ответ дан 10 December 2019 в 00:38
поделиться

Как: Развертывание базы данных SQL Server Compact Edition с приложением должно помочь, по крайней мере, в первых двух вопросах.

В общем, я думаю, вам не следует устанавливать что-либо в GAC для одного приложения.

1
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: