Ошибка «sqlceqp35.dll» при отладке, но не при запуске развернутого кода - PullRequest
1 голос
/ 22 января 2010

В нашем текущем проекте Windows Mobile недавно возникла проблема при отладке. При попытке отладки кода он выдает исключение по команде open при подключении к локальной базе данных.

Сообщение "A SQL Server Compact DLL could not be loaded. Reinstall SQL Server Compact Edition. [ DLL Name = sqlceqp35.dll ]". Иногда вместо этого возникает неизвестная ошибка со ссылкой на тот же файл.

Если вы выполняете бинарный файл, который развертывается во время отладки, на устройстве он работает без проблем.

Я пробовал: Переустановите .net и sqlce на устройстве. Изменена «конкретная версия» по ссылочным свойствам в проекте.

Аппаратное обеспечение, которое я использую, - это Motorola MC70 с Windows Mobile 5.0. Целевая платформа проекта - Windows Mobile 5.0.

Любые идеи о том, что может вызвать эту проблему?

РЕДАКТИРОВАТЬ: Когда я попробовал это на MC75, я могу отладить его. MC70 получил версию ОС: 05.01.0478 и MC75 05.01.0478. Мое лучшее предположение сейчас состоит в том, что это так или иначе связано с версией ОС или фактическим устройством.

1 Ответ

1 голос
/ 30 января 2010

Вероятно, это была проблема с памятью, когда приложение немного выросло, возникали те же проблемы, даже когда не выполнялась отладка.

Чтобы обойти его, нужно было принудительно загрузить библиотеку. В нашем случае мы добавили следующий код в начало нашего приложения.

IntPtr result = LoadLibrary(Path.Combine(sqlCeInstallPath, dllName));
...