(这是 stackoverflow.com 中提出的重复问题。我已阅读答案。我已经尝试了解决方案,但这并没有解决我的问题。我将解释我的问题是什么以及有什么问题我完成了)。
这是我的问题:
我的应用程序使用了 System.Data.SQLite.DLL。我引用它并在我的计算机上正常运行,但它无法在另一台计算机上运行。这是错误消息:
System.IO.FileLoadException:无法加载文件或程序集“System.Data.SQLite,Version=1.0.88.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139”或其依赖项之一。应用程序无法启动,因为它的并排
配置不正确。请查看应用程序事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息。
(来自 HRESULT 的异常:0x800736B1)文件名:'System.Data.SQLite,Version=1.0.88.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139' ---> System.Runtime.InteropServices.COMException (0x800736B1):应用程序失败开始,因为它并排
配置不正确。请查看应用程序事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息。
(HRESULT 异常:0x800736B1)在 SimPB.config.PrepareDatabase() 在 SimPB.config.InitializeProgram() 在 SimPB.Program.Main()
我的电脑运行的是 Windows 7 32 位,Visual Studio 2010。
另一台计算机也在运行 Windows 7 32 位,但未安装 Visual Studio。
我试过的:
尝试 1:确保应用程序是使用Release + x86构建的,并且应用程序是使用目标框架构建的:.NET Framework 2.0。完毕。
尝试 2:确保引用的应用程序使用正确的 System.Data.SQLite 构建,即 x86 + .Net Framework 2.0 (sqlite-netFx20-binary-Win32-2005-1.0.88.0)。完毕
尝试 3:在 App.config 中尝试以下代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
还有这个
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
</configuration>
还有这个
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
完毕。
尝试 4:尝试关闭另一台计算机上的用户帐户控制。完毕。
尝试 5:尝试在另一台计算机上安装 Visual C++ Runtime(我安装了 Visual Microsoft Visual C++ Runtime 2010 Redistributable Package (x86),也尝试了 2005 版本。)。完毕。
尝试 6:尝试重新安装 .NET Framework 2.0 SP2。接收错误:
您必须使用控制面板中的“打开或关闭 Windows 功能”来安装或配置 Microsoft .NET Framework 2.0 SP2。
更新:(阅读答案和评论后)
尝试 7:确保 System.Data.SQLite.DLL 位于输出 bin 文件夹中。完毕
尝试 8:再次确认另一台计算机正在运行 32 位 Windows 7。完成
尝试 9:更改 .csproj 文件中的 HintPath 声明:
更改此:
<Reference Include="System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<HintPath>E:\Developer Soft\SQLite\sqlite-netFx20-binary-bundle-Win32-2005-1.0.88.0\System.Data.SQLite.dll</HintPath>
</Reference>
对此:
<Reference Include="System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<HintPath>..\System.Data.SQLite.dll</HintPath>
</Reference>
完成尝试 9。
经过以上尝试,结果还是一样。该应用程序可以在我的计算机上正常运行,但无法在另一台计算机上运行。
这是一个开源免费软件,简单电话簿。我已将最新的源代码提交并上传到它的源代码控制服务器:
http ://simpb.codeplex.com/SourceControl/list/changesets(变更集编号:fd847ac6c406)