我创建了一个WinForms应用程序和正在使用SQLite与实体框架6.我使用Visual Studio 2013。
该应用程序完美的作品我的本地机器上。 然而,当程序在另一台机器上运行出现以下错误:
“无法加载DLL‘SQLite.Interop.dll’:指定的模块找不到。
就我而言,问题是,互操作DLL不被复制到该目录,当我发表我的项目。
我的问题是:如何强制这个dll复制到正确的目录,当我发布应用程序?
我创建了一个WinForms应用程序和正在使用SQLite与实体框架6.我使用Visual Studio 2013。
该应用程序完美的作品我的本地机器上。 然而,当程序在另一台机器上运行出现以下错误:
“无法加载DLL‘SQLite.Interop.dll’:指定的模块找不到。
就我而言,问题是,互操作DLL不被复制到该目录,当我发表我的项目。
我的问题是:如何强制这个dll复制到正确的目录,当我发布应用程序?
我发现我的问题的解决方法。 我已经正确安装了所有的SQLite的包,然而Interop.dlls没有在复制的时候我发布的应用程序。
我所做的是建立项目,然后走进斌/调试/文件夹和复制了包含SQLite.Interop.dll文件的x86和x64文件夹。 然后我包括在我的项目这些文件夹。 如果所有现在工作的罚款。
对于后人,如果您通过添加的NuGet SQLite的,它不是抄袭,您可以添加到您的csproj文件,这一点,它应该复制的x86和x64的的:
<PropertyGroup>
<ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
<CopySQLiteInteropFiles>false</CopySQLiteInteropFiles>
<CleanSQLiteInteropFiles>false</CleanSQLiteInteropFiles>
<CollectSQLiteInteropFiles>false</CollectSQLiteInteropFiles>
</PropertyGroup>
在Visual Studio中SQLite.Interop.dll参考性质“复制本地”设置为true。