Как использовать system.data.sqlite с разделенными версиями для x86 и x64 ?
Привет,
Я создаю библиотеку на C# с помощью SQLite. Я хотел бы иметь не более одного (lib.dll) или два DLL (lib.dll и еще System.Data.SQLite.dll) в конце концов.
Сначала я решил использовать только версию x86 System.Data.SQLite.dll, однако на официальном сайте сказано: [^]:
Using Native Library Pre-Loading ... Generally, x86 binaries will work on an x64 machine running Windows (using WoW64). However, there is a problem when using managed code. If the executable that starts the process consists entirely of managed code, it will run with the native processor architecture of the machine, which will be x64 on an x64 machine. ...
Поэтому, по-видимому, важно также иметь версию x64.
Я видел кое-что о файлах взаимодействия (SQLite.Interop.dll), но они требуют подкаталогов и файлов.
Следовательно, я думал о создании x86-версии моей библиотеки и x64-версии, с другой стороны. System.Data.SQLite.dll файл для каждого.
У меня есть следующие вопросы:
- где я могу найти x64 и x86 версии System.Data.SQLite.dll -что ?
- как я могу сам скомпилировать их из исходного кода?
- есть ли простой способ получить System.Data.SQLite.dll файл как встроенный ресурс, так что в конце концов мне придется распространять только одну dll ?
Спасибо за вашу помощь, пожалуйста, задавайте любые вопросы, если это необходимо.
Что я уже пробовал:
Я нашел кое-какую информацию, но я потерял представление об общей процедуре и о том, где я могу найти файлы.
О версиях: https://stackoverflow.com/questions/18163354/sqlite-dll-for-x86-x64-architectures
О встроенных ресурсах: https://stackoverflow.com/questions/15852061/how-i-make-a-single-executable-with-system-data-sqlite-merge
Страница загрузки: https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
Richard MacCutchan
Вы не можете использовать одну библиотеку dll как для x86, так и для x64.
SheepSpeech
Это не то, о чем я прошу, я хотел бы иметь одну dll для x64, а затем создать x64-версию моей библиотеки, а в другом проекте-dll для x86, а затем создать x86-версию моей библиотеки.
Richard MacCutchan
Итак, в чем же проблема?
SheepSpeech
Вот он:
У меня есть следующие вопросы:
- где я могу найти x64 и x86 версии System.Data.SQLite.dll -что ?
- как я могу сам скомпилировать их из исходного кода?
- есть ли простой способ получить System.Data.SQLite.dll файл как встроенный ресурс, так что в конце концов мне придется распространять только одну dll ?
Richard MacCutchan
На эти вопросы можно ответить по адресу Системы.Данных.Базы Данных SQLite Загрузки Страницы[^].
SheepSpeech
Ну, я нашел в учебнике (https://blog.tigrangasparian.com/2012/02/09/getting-started-with-sqlite-in-c-part-one/) один человек System.Data.SQLite.dll файл для x86, но я не могу найти его на странице загрузки (он всегда ссылается на другие dll, такие как SQLite.Interop.dll). Я хотел бы только 1 dll, как у меня было с этим учебником, но с официального сайта.
Richard MacCutchan
Наверное, ты смотришь на другую страницу.
SheepSpeech
Какой именно?
Richard MacCutchan
Какой из них что?
SheepSpeech
На какой странице Я должен искать версии x64 и x86 System.Data.SQLite.dll -что ?
Richard MacCutchan
Что вы имеете в виду под какой страницей? Я дал вам ссылку в своем сообщении 3 часа назад; она содержит более 30 загрузок для различных версий .NET, 32 и 64 бит. Вы действительно потрудились взглянуть на него?
SheepSpeech
Спасибо, но эта ссылка была в моем первоначальном посте, и я объяснил, что не могу найти то, что мне нужно на этой странице (либо потому, что ее здесь нет, либо потому, что я неправильно ищу): a System.Data.SQLite.dll работает как один файл. И это возможно: я дал вам ссылку на учебник с таким файлом.
Richard MacCutchan
Извините, но я не знаю, в чем ваша проблема. Все, что вам нужно, находится на этой странице загрузки. Если вам нужно создать свою собственную упакованную версию, то загрузите исходный код и создайте его оттуда.