Возможно ли, что ваш бинарный файл x64 поврежден? Я могу успешно использовать add-type для только что загруженной копии system.data.sqlite.dll, используя приведенный ниже код, и я могу создать экземпляр всех связанных объектов. Я также могу открыть базу данных без ошибок и успешно выполнить запрос. Попробуйте эту технику (по сути, используя Add-Type вместо LoadFrom) с вашей БД, и дайте мне знать.
Пример кода для модуля SQLite PowerShell:
function Add-SqliteAssembly {
# determine bitness (32 vs. 64) of current PowerShell session
# I'm assuming bitness = system architecture here, which won't work on IA64, but who cares
switch ( [intptr]::Size ) {
4 { $binarch = 'x86' }
8 { $binarch = 'x64' }
}
$modPath = $MyInvocation.MyCommand.Module.ModuleBase
$SQLiteBinName = 'System.Data.SQLite.dll'
$SQLiteBinPath = "$modPath\$binarch\$SQLiteBinName"
Add-Type -Path $SQLiteBinPath
}
Чтобы использовать этот модуль, сохраните его в файл с именем sqlite.psm1 и поместите его где-нибудь в путь к модулю . Затем поместите два файла System.Data.SQLite.dll, которые вы загрузили , в подпапки, каждая в соответствующую папку (x86 или x64). Затем в PowerShell введите:
Import-Module sqlite
А потом фактически загрузить сборку:
Add-SqliteAssembly
Теперь ваш исходный код (без нагрузки на вещи) должен работать.