解决在log4net 中使用sqlite 无法加载“SQLite.Interop.066.DLL ”的问题

本文介绍了如何通过正确配置PublicKeyToken来解决数据库连接问题,并提供了具体的步骤及验证方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



产生这个问题的原因是公用钥匙(PublicKeyToken)没有填写正确。

首先使用

<connectionTypevalue="System.Data.SQLite.SQLiteConnection, System.Data.SQLite, Version=1.0.66.0, Culture=Neutral, PublicKeyToken=1fdb50b1b62b4c84" />

进行测试

结果为

再看Connection的版本信息

然后使用以下测试

<connectionTypevalue="System.Data.SQLite.SQLiteConnection, System.Data.SQLite, Version=1.0.66.0, Culture=Neutral, PublicKeyToken=db937bc2d44ff139" />

从上图可以看到,数据库已经正确打开

再看版本号,也可以正常看到了

类库的公共钥匙可以到

C:\WINDOWS\assembly找到

注意看,处理器体系结构。

理解这个问题产生的原因,你也能解决其他类库引用遇到的问题了。

PS C:\Users\Administrator> # ProjectCleanup.ps1 >> $projectRoot = "E:\ProjectEcosystem\ProjectMonitor" >> >> # 1. 创建标准文件夹结构 >> $folders = @( >> "SQLite", >> "Logs", >> "Database", >> "Scripts", >> "Config" >> ) >> >> foreach ($folder in $folders) { >> $path = Join-Path $projectRoot $folder >> if (-not (Test-Path $path)) { >> New-Item -ItemType Directory -Path $path -Force | Out-Null >> } >> } >> >> # 2. 识别并移动SQLite文件 >> $sqliteFiles = @( >> "System.Data.SQLite.dll", >> "System.Data.SQLite.Linq.dll", >> "SQLite.Interop.dll", >> "sqlite3.def", >> "sqlite3.dll", >> "SQLite.NET.chm" >> ) >> >> foreach ($file in $sqliteFiles) { >> $source = Join-Path $projectRoot $file >> $dest = Join-Path $projectRoot "SQLite" $file >> >> if (Test-Path $source) { >> Move-Item -Path $source -Destination $dest -Force >> Write-Host "✅ 已移动: $file -> SQLite\" -ForegroundColor Cyan >> } >> } >> >> # 3. 移动数据库文件 >> $dbFiles = Get-ChildItem -Path $projectRoot -Filter "*.db*" >> foreach ($db in $dbFiles) { >> Move-Item -Path $db.FullName -Destination (Join-Path $projectRoot "Database") -Force >> Write-Host "✅ 已移动数据库: $($db.Name) -> Database\" -ForegroundColor Cyan >> } >> >> # 4. 移动脚本文件 >> $scriptFiles = Get-ChildItem -Path $projectRoot -Filter "*.ps*1" >> foreach ($script in $scriptFiles) { >> Move-Item -Path $script.FullName -Destination (Join-Path $projectRoot "Scripts") -Force >> Write-Host "✅ 已移动脚本: $($script.Name) -> Scripts\" -ForegroundColor Cyan >> } >> >> # 5. 移动配置文件 >> $configFiles = Get-ChildItem -Path $projectRoot -Filter "*config*" >> foreach ($config in $configFiles) { >> Move-Item -Path $config.FullName -Destination (Join-Path $projectRoot "Config") -Force >> Write-Host "✅ 已移动配置: $($config.Name) -> Config\" -ForegroundColor Cyan >> } >> >> # 6. 清理临时文件 >> $tempFiles = @( >> "*.zip", >> "*.tmp", >> "*.log", >> "*.bak", >> "Thumbs.db" >> ) >> >> foreach ($pattern in $tempFiles) { >> Get-ChildItem -Path $projectRoot -Filter $pattern | Remove-Item -Force >> } >> >> # 7. 清理空文件夹 >> Get-ChildItem -Path $projectRoot -Directory -Recurse | >> Where-Object { $_.GetFiles().Count -eq 0 -and $_.GetDirectories().Count -eq 0 } | >> Remove-Item -Force -Recurse >> >> Write-Host "✨ 清理完成!项目目录已整理 ✨" -ForegroundColor Green >> Write-Host "当前目录结构:" >> tree $projectRoot /F /A >> Join-Path : 找不到接受实际参数“System.Data.SQLite.dll”的位置形式参数。 所在位置 行:32 字符: 13 + $dest = Join-Path $projectRoot "SQLite" $file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Join-Path],ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.JoinPathCommand Move-Item : 无法处理参数,因为参数“destination”的值为空。请将参数“destination”的值更改为非空值。 所在位置 行:35 字符: 9 + Move-Item -Path $source -Destination $dest -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Move-Item],PSArgumentNullException + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.MoveItemCommand ✅ 已移动: System.Data.SQLite.dll -> SQLite\ Join-Path : 找不到接受实际参数“System.Data.SQLite.Linq.dll”的位置形式参数。 所在位置 行:32 字符: 13 + $dest = Join-Path $projectRoot "SQLite" $file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Join-Path],ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.JoinPathCommand Move-Item : 无法处理参数,因为参数“destination”的值为空。请将参数“destination”的值更改为非空值。 所在位置 行:35 字符: 9 + Move-Item -Path $source -Destination $dest -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Move-Item],PSArgumentNullException + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.MoveItemCommand ✅ 已移动: System.Data.SQLite.Linq.dll -> SQLite\ Join-Path : 找不到接受实际参数“SQLite.Interop.dll”的位置形式参数。 所在位置 行:32 字符: 13 + $dest = Join-Path $projectRoot "SQLite" $file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Join-Path],ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.JoinPathCommand Join-Path : 找不到接受实际参数“sqlite3.def”的位置形式参数。 所在位置 行:32 字符: 13 + $dest = Join-Path $projectRoot "SQLite" $file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Join-Path],ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.JoinPathCommand Join-Path : 找不到接受实际参数“sqlite3.dll”的位置形式参数。 所在位置 行:32 字符: 13 + $dest = Join-Path $projectRoot "SQLite" $file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Join-Path],ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.JoinPathCommand Join-Path : 找不到接受实际参数“SQLite.NET.chm”的位置形式参数。 所在位置 行:32 字符: 13 + $dest = Join-Path $projectRoot "SQLite" $file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Join-Path],ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.JoinPathCommand ✅ 已移动数据库: northwindEF.db -> Database\ ✅ 已移动数据库: project_state.db -> Database\ ✅ 已移动脚本: Initialize-DevEnv.psm1 -> Scripts\ ✅ 已移动脚本: Monitor-Project.ps1 -> Scripts\ ✅ 已移动脚本: Start-Ecosystem.ps1 -> Scripts\ Move-Item : 参数错误。 所在位置 行:57 字符: 5 + Move-Item -Path $config.FullName -Destination (Join-Path $project ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (E:\ProjectEcosy...tMonitor\Config:DirectoryInfo) [Move-Item], IOException + FullyQualifiedErrorId : MoveDirectoryItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand ✅ 已移动配置: Config -> Config\ ✅ 已移动配置: System.Data.SQLite.dll.config -> Config\ ✅ 已移动配置: test.exe.config -> Config\ ✅ 已移动配置: testef6.exe.config -> Config\ ✅ 已移动配置: testlinq.exe.config -> Config\ ✨ 清理完成!项目目录已整理 ✨ 当前目录结构: 卷 ="模型响应", 的文件夹 PATH 列表 卷序列号为 7648-2CD3 E:\PROJECTECOSYSTEM\PROJECTMONITOR | db_init.py | Installer.exe | Installer.pdb | monitor.py | SQLite.Designer.dll | SQLite.Designer.pdb | SQLite.Designer.xml | state_analyzer.py | System.Data.SQLite.dll | System.Data.SQLite.EF6.dll | System.Data.SQLite.EF6.pdb | System.Data.SQLite.EF6.xml | System.Data.SQLite.Linq.dll | System.Data.SQLite.Linq.pdb | System.Data.SQLite.Linq.xml | System.Data.SQLite.pdb | System.Data.SQLite.xml | test.exe | test.pdb | testef6.exe | testef6.pdb | testlinq.exe | testlinq.pdb | +---APIServer | | .gitignore | | APIServer.code-workspace | | package.json | | | \---src | index.js | +---BackendService | | .gitignore | | BackendService.code-workspace | | BackendService.sln | | | \---src | \---BackendService | BackendService.csproj | Program.cs | +---Config | System.Data.SQLite.dll.config | test.exe.config | testef6.exe.config | testlinq.exe.config | +---DataAnalysis | | .gitignore | | DataAnalysis.code-workspace | | requirements.txt | | | \---src | main.py | +---Database | northwindEF.db | project_state.db | +---EcoMonitor | | .gitignore | | README.md | | | \---config | settings.psd1 | +---MyApp | | .gitignore | | MyApp.code-workspace | | | \---src | index.html | main.js | style.css | +---MyWebApp | | .gitignore | | MyWebApp.code-workspace | | | \---src | index.html | main.js | style.css | \---Scripts Initialize-DevEnv.psm1 Monitor-Project.ps1 Start-Ecosystem.ps1 PS C:\Users\Administrator>
最新发布
08-14
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值