Ошибка SQL Server Compact: не удалось загрузить DLL ' sqlceme35.в DLL'. Не удалось найти указанный модуль
Я разрабатываю Windows Forms приложения с помощью Visual Studio 2008 с C#, который использует SQL Server Compact 3.5 база данных на клиенте. Клиент, скорее всего, будет 32-разрядными машинами Windows XP или Windows Vista. Я использую стандартный проект установщика Windows, который создает MSI файл и установки.exe для установки приложения на клиентском компьютере. Я новичок в SQL Server Compact, поэтому мне не приходилось распространять клиентскую базу данных, как это раньше сейчас. Когда я запускаю установку.exe (на новом Windows XP 32 бит с SP2 и Internet Explorer 7) он устанавливается нормально, но когда я запускаю приложение, я получаю эту ошибку:
не удалось загрузить DLL ' sqlceme35.в DLL'. Не удалось найти указанный модуль
Я потратил несколько часов на поиск этой ошибки уже, но все, что я мог найти, это проблемы, связанные с установкой на 64-битных Windows, и ни один из них не относится к обычному 32-биту, который я использую.
установить приложение копирует все найденные зависимые файлы в указанный каталог установки, включая System.Data.SqlServerCe.dll
файл (версия сборки 3.5.1.0). Файл базы данных находится в каталоге под названием "данные" вне каталога приложения, а строка подключения для него -
<add name="Tickets.ieOutlet.Properties.Settings.TicketsLocalConnectionString" connectionString="Data Source=|DataDirectory|dataTicketsLocal.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" />
некоторые вопросы у меня есть:
- если приложение сможет найти файл DLL, если он находится в том же каталоге, то есть локальном для приложения, или мне нужно установить его в the GAC? (Если да, могу ли я использовать установщик Windows для установки DLL-файла в GAC?)
- есть ли что-нибудь еще, что мне нужно распространять с приложением, чтобы использовать базу данных SQL Server Compact?
- есть и другие DLL-файлы, такие как MS interop для экспорта данных в Excel на клиенте. Должны ли они быть установлены в GAC или будет достаточно найти их в каталоге приложения?
4 ответов
вам не нужно, чтобы он был в GAC для SQL Server Compact для запуска, и он заберет их из каталога приложений. Существует несколько способов развертывания проекта SQL Server Compact. Два основных способа:
развертывание распространяемого установщика SQL Server Compact с вашим проектом, но этот способ является болезненным, а также может быть unistalled конечным пользователем или обновлен с помощью обновлений Windows и приложение.
включая DLL-файлы в папке приложения. В зависимости от используемых функций SQL Server Compact (репликация или что-то еще) в папке приложения можно развернуть несколько DLL-файлов.
Если на вашем компьютере установлен SQL Server Compact, они, скорее всего, расположены по адресу "C:\Program файлы\Microsoft SQL Server Compact Edition\v3.5". Их можно добавить в проект в Visual Studio и затем установите тип вывода проекта в "копировать всегда". И главная ссылка на System.Data.SqlServerCe
что у вас в ссылках на проект должно быть копировать локально значение true.
- sqlceca35.dll файлы
- sqlcecompact35.dll файлы
- sqlceer35en.dll файлы
- sqlceoledb35.dll файлы
- sqlceqp35.dll файлы
- sqlcese35.dll файлы
Если у вас все это установлено, то в вашем проекте установщика все, что вам нужно включить, это проектный результат этого проекта и Вы хороши. По-моему, это единственный выход. Это простое развертывание из нескольких файлов, и вы контролируете, какие версии DLL использует ваше приложение.
надеюсь, это поможет.
у меня была аналогичная проблема, приложение Visual Studio 2008 для Windows, предназначенное для 32-разрядной Windows XP и Windows Vista, которое использовало SQL Server Compact 3.5 SP1, а затем получило эту ошибку при установке на 64 - разрядную Windows 7:
не удалось загрузить DLL ' sqlceme35.в DLL'. Не удалось найти указанный модуль
Я встраивал MSI для SQL Server Compact в установщик для приложения.
после этого в замешательстве обсуждение на MSDN показал, что мне нужно использовать 64-разрядный MSI для SQL Server Compact на 64-разрядных машинах. О! То есть со страницы пакет обновления 1 для Microsoft SQL Server Compact 3.5 и Службы синхронизации для ADO.NET версия 1.0 пакет обновления 1 для рабочего стола Windows мне нужно SSCERuntime-ENU-x64.msi
, а не SSCERuntime-ENU-x86.msi
для 64-битных машин.
как: развертывание базы данных SQL Server Compact Edition с приложением должно помочь, по крайней мере, с вашими первыми двумя вопросами.
В общем, я думаю, что вы не должны ничего устанавливать в GAC для одного приложения.
следующее обеспечивает решение проблемы и объяснение также.
Устранение неполадок: не удается загрузить SQL Server Compact DLL
SqlCeException при первом использовании приложения SQL Server Compact
Лакшми Нарасимхи РАО Oruganti с
надеюсь, это поможет.