Mohankumar.Engain Ответов: 1

Как выполняется настройка на платформе windows 32 и 64 с помощью приложения windows?


Уважаемая Команда,

I have both SQLite.DLL and SQLite.Interop.DLL

Я хочу создать настройку для обеих платформ(32 бит и 64 бит) отдельно.

Нужно использовать 32-битную платформу, а также 64-битную платформу, в то время как настройка ее показывает ошибку.

пожалуйста, укажите, как использовать мой установочный файл на обеих(32 и 64) битных платформах.

и у меня есть база данных SQLite и 3.5 visual studio framework.

пожалуйста, предоставьте подробную информацию о моих сомнениях.

заранее спасибо.

Что я уже пробовал:

GAC - глобальный кэш сборок, куда я могу добавить эти dll и как добавить свой проект.

SQLite.dll и SQLite.Interop.dll, я попробовал эти библиотеки DLL в моем же каталоге папки bin проекта и получить к нему доступ. но при создании установочного файла в SQLite.Interop.dll ссылка показывает ошибку.

RickZeeland

Какую программу настройки вы используете ?
Как ваш проект настроен в VS, любом процессоре или x64 или x86 ?

Mohankumar.Engain

Мы создаем программу установки exe-файла.
Настроено в Visual studio
1. Если x64, то установка будет работать на платформах windows x64(64-битная машина),
2. Если x86, то установка будет работать на платформах windows x86(32-битная машина)
использование SQLite.dll и SQLite.Interop.dll ассамблеи.

Mohankumar.Engain

Если мы генерируем установочный файл, то сталкиваемся с исключением, как показано ниже,
Система.DllNotFoundException: 'невозможно загрузить DLL 'SQLite.Interop.dll':
Указанный модуль не удалось найти. (Исключение из HRESULT: 0x8007007E)'.

Mohankumar.Engain

Если вы попытаетесь подключиться к базе данных SQLite с помощью этих сборок, то ниже будет поднята проблема,
=&ГТ; система.Данных.Базы данных SQLite.SQLiteException: 'логическая ошибка SQL
такой таблицы нет: Tb_User'

1 Ответов

Рейтинг:
1

RickZeeland

Одним из вариантов может быть использование управляемой версии C#-SQLite: Архив Кода Google[^]
Это порт для управляемого C#, поэтому он может работать как AnyCPU.

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

Вас также могут заинтересовать эти ответы: c# - не удается загрузить DLL 'SQLite.Взаимодействие.dll' - переполнение стека[^]


Mohankumar.Engain

На самом деле мы добавляем две сборки, 1. SQLite.dll и 2. SQLite.Interop.dll.
при создании установки ниже была поднята проблема,
Система.DllNotFoundException: 'невозможно загрузить DLL 'SQLite.Interop.dll':
Указанный модуль не удалось найти. (Исключение из HRESULT: 0x8007007E)'.

Mohankumar.Engain

Если вы попытаетесь подключиться к базе данных SQLite с помощью этих сборок, то ниже будет поднята проблема,
=&ГТ; система.Данных.Базы данных SQLite.SQLiteException: 'логическая ошибка SQL
такой таблицы нет: Tb_User'

RickZeeland

Вероятно, проблема пути, см.: https://stackoverflow.com/questions/19800053/sql-logic-error-or-missing-database-no-such-table-when-deleting-from-database/20083762#20083762