C# 无法加载dll sqlite互操作dll WPF
我正在做一个WPF应用程序,并尝试部署/发布它。只要我在VisualStudio中运行应用程序,一切都很好。但当我尝试将部署文件[从发布文件夹]分离到另一个位置并尝试运行时,出现了错误 无法加载DLL“SQLite.Interop.DLL”:找不到指定的模块。(来自HRESULT的异常:0x8007007E) 我从发布文件夹复制了App.exe+App.exe.config+System.Data.SQLite.dll文件 其他信息: 我已经安装了SQLite Nuget包 在解决方案属性中,取消选中“首选32位”并将平台设置为任何CPU 我是WPF的新手,如果我的部署过程或其他任何事情出错,有人能纠正我吗 更新: 我还尝试将所有与SQLite相关的DLL与解决方案exe文件一起复制到新位置,但出现了相同的错误 我列出的文件列表包括:C# 无法加载dll sqlite互操作dll WPF,c#,wpf,sqlite,C#,Wpf,Sqlite,我正在做一个WPF应用程序,并尝试部署/发布它。只要我在VisualStudio中运行应用程序,一切都很好。但当我尝试将部署文件[从发布文件夹]分离到另一个位置并尝试运行时,出现了错误 无法加载DLL“SQLite.Interop.DLL”:找不到指定的模块。(来自HRESULT的异常:0x8007007E) 我从发布文件夹复制了App.exe+App.exe.config+System.Data.SQLite.dll文件 其他信息: 我已经安装了SQLite Nuget包 在解决方案属性中,取
App.exe
App.exe.config
System.Data.SQLite.dll
System.Data.SQLite.EF6.dll
System.Data.SQLite.Linq.dll
还要确保exe所在的位置存在这些DLL:
System.Data.SQLite.dll
System.Data.SQLite.EF6.dll
System.Data.SQLite.Linq.dll
如果没有,请从“解决方案资源管理器”中的调试文件夹中复制它们,单击“项目”名称上的右键,然后选择
添加->现有项目
。然后将搜索更改为All Files(*.*)
,并打开Sqlite.Interop.dll
。您可以在bin\debug\x86(或x64)
现在项目中有了dll(如果右键单击它,您可以看到“buildaction=content”)。在“构建操作=嵌入式资源”中更改它
重新出版,就这样。毛罗的答案非常有效。除此之外,64 interop.dll对我不起作用。您还需要将“复制到输出目录”更改为“始终复制”,或者更改为更新版本。然后,如果执行86,则可以离开任何cpu,并离开perfer32 我刚刚在VS2015社区WinForms项目中解决了这个问题:
我尝试过各种各样的其他选择,但没有一个奏效。对我来说,它并没有像毛罗上面所建议的那样奏效() 我通过将构建操作设置为“content”使其正常工作。作为SQLite,您的应用程序部署必须: 因此,您需要遵循这些规则。找到与目标平台匹配的dll并将其放置在适当的位置,如图所示。dll可以在您的解决方案/packages/System.Data.SQLite.Core.%version%/中找到
我在应用程序部署方面遇到了问题,所以我只是将正确的SQLite.Interop.dll添加到我的项目中,将x86文件夹添加到安装项目的AppApplicationFolder中,并将文件引用添加到dll中。感谢您的回复Joseph,但不幸的是,我也尝试了建议的解决方案,但它不起作用。您能否查看更新的question.this在我的SQLiteConnection构造函数中抛出了一个异常,破坏了已经运行的东西。这些东西去哪里了?