Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# (使用SQLite的UserControl)---->;未能创建组件';UserControl1';,System.DllNotFound Excpetion,无法加载Sqlite.interop.dll_C#_Sqlite_Dll_Interop - Fatal编程技术网

C# (使用SQLite的UserControl)---->;未能创建组件';UserControl1';,System.DllNotFound Excpetion,无法加载Sqlite.interop.dll

C# (使用SQLite的UserControl)---->;未能创建组件';UserControl1';,System.DllNotFound Excpetion,无法加载Sqlite.interop.dll,c#,sqlite,dll,interop,C#,Sqlite,Dll,Interop,我有一个使用Sqlite的用户控件。编译并添加到工具箱后,通过将其拖动到新表单中,将显示一条错误消息,如下所述: 未能创建组件“UserControl1”。错误消息出现在“System.DllNotFoundException:”无法加载Dll“Sqlite.Interop.Dll”:找不到指定的模块。HResult的异常:0x8007007E 我在谷歌上搜索了这个问题,我仍然无法解决这个问题。但有趣的是如果 我通过引用将其硬编码到表单中,并创建了一个新控件,用户控件起作用了。 为什么拖放会有这

我有一个使用Sqlite的用户控件。编译并添加到工具箱后,通过将其拖动到新表单中,将显示一条错误消息,如下所述:

未能创建组件“UserControl1”。错误消息出现在“System.DllNotFoundException:”无法加载Dll“Sqlite.Interop.Dll”:找不到指定的模块。HResult的异常:0x8007007E

我在谷歌上搜索了这个问题,我仍然无法解决这个问题。但有趣的是如果 我通过引用将其硬编码到表单中,并创建了一个新控件,用户控件起作用了。 为什么拖放会有这个问题

还有一个问题:我正在使用Nuget安装sqlite,有两个版本:32位和64位: 我应该添加哪一个作为参考?
我使用VS2010 ultimate sp1.Sqlite v 1.0.83.0.编译的dll作为任何cpu。

如果您为Sqlite下载了正确的二进制文件,则根据您的项目构建选项将Sqlite.Interop.dll复制到您的发行版或调试文件夹中。

我认为这是一个与Sqlite不同的问题,更具体地说,是在您尝试o从工具箱中拖动用户控件。我也遇到了同样的问题。我能够通过
控件以编程方式添加用户控件。添加(myUserControl)
,效果很好,但我无法从工具箱中拖动它。一些搜索让我找到了以下链接,其中包含Hans Passant的见解:

要点是,设计器不知道在哪里查找DLL的路径。作为测试,我在
DllImport
中硬编码了路径,即
[DllImport(*此处为完整路径*)]
,并且我能够成功地将用户控件从工具箱拖到设计器中。(在尝试添加用户控件之前,请确保在添加完整路径后进行生成!)


在没有任何主要测试的情况下,我似乎能够删除完全限定的路径,并且设计者似乎记得要查找的位置。我可以从表单中删除用户控件,然后重新添加它,而不会出现问题。但是,一旦我关闭Visual Studio并重新打开它,从工具箱中拖放用户控件再次失败。希望这些信息能够帮助人们理解正在发生的事情和/或引导他们找到正确的解决方案。

错误消息可能说明了确切的问题:它找不到
Sqlite.Interop.dll
。请将您的硬编码代码与表单设计器生成的代码进行比较。这可能会有所帮助:同时检查此link:在发布此链接之前,我查看了上面的2个链接。用户控件是使用WindowLibrary创建的,我将dll添加到工具箱中,但我将无法使用。如果我使用project explorer中添加的引用并对其进行硬编码,它将起作用(将组件添加到控件“this.add(XXX)”,那么dll就在那里并且工作了!但是..为什么不从工具箱中呢?