Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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# 让ServiceStack示例正常工作_C#_.net_Sqlite_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,C#,.net,Sqlite,servicestack" /> servicestack,C#,.net,Sqlite,servicestack" />

C# 让ServiceStack示例正常工作

C# 让ServiceStack示例正常工作,c#,.net,sqlite,servicestack,C#,.net,Sqlite,servicestack,我是ServiceStack的新手。我正在测试最电影的例子。当我运行项目时,立即窗口会显示此错误 “Mono.Data.Sqlite.DLL中出现'System.DllNotFoundException'类型的第一次意外异常” 没有电影列表正在加载。因此,只有一个带有一些默认输入的空白“添加新电影”页面,每次我点击添加新电影时,都会抛出DllNotFoundException 我是否需要安装任何依赖项项目才能使其正常工作?我用VS2010、IIS和Vista 32位运行它(是的,我知道)。刚才还

我是ServiceStack的新手。我正在测试最电影的例子。当我运行项目时,立即窗口会显示此错误

“Mono.Data.Sqlite.DLL中出现'System.DllNotFoundException'类型的第一次意外异常”

没有电影列表正在加载。因此,只有一个带有一些默认输入的空白“添加新电影”页面,每次我点击添加新电影时,都会抛出DllNotFoundException

我是否需要安装任何依赖项项目才能使其正常工作?我用VS2010、IIS和Vista 32位运行它(是的,我知道)。刚才还盲目安装了Mono和sqlite 32位,我甚至不确定项目是否需要运行它们。从代码中,我可以看到它引用的是“App_Data/db.sqlite”,并且引用的已经是sqlite3.dll,我用我下载的32位的dll替换了它,但仍然不走运


请给我一些提示,说明我遗漏了什么?多谢各位

Mono.Data.Sqlite.DLL只是一个托管包装器,需要找到非托管的
sqlite3.DLL
才能运行(这是保存Sqlite本身本机二进制文件的内容)

它在
/bin
目录中查找,以便在您需要将
sqlite3.dll
复制到项目根
/
时将其部署在那里,并将构建操作设置为内容,如果更新,则将复制操作更改为
复制

理想情况下,您希望为您的体系结构使用正确的
sqlite3.dll
(NuGet包包含32位/64位dll),尽管IIS/.NET可以与32位非托管dll一起工作,但会

使用混合模式程序集 虽然
Mono.Data.Sqlite.DLL
允许您在Mono上运行相同的.NET应用程序,但如果您只想在Windows中运行Sqlite,还可以使用混合模式程序集,这些程序集在.NET DLL中嵌入了非托管本机Sqlite库。NuGet上有两个不同的版本:


删除对现有OrmLite或Sqlite DLL的任何引用,因为这两个NuGet软件包都包含所需的所有Sqlite+OrmLite DLL。

嗨,mythz,感谢您查看我的问题!:当我编译它时,我拥有由项目本身生成的sqlite3.dll(492kb)。还尝试了NuGet包sqlite3.dll(x86 585kb)。我将它们逐个放入/bin/文件夹中。两者似乎都引发了相同的DllNotFoundException,但sqlite3.dll 32位版本就在同一文件夹中的Mono.Data.Sqlite.dll旁边。我看了这篇文章,这似乎是一个64位的pc问题,需要启用32位的应用程序。更新:还尝试了快捷方式和实际的sqlite3.dll(如果更新,则作为内容副本)。相同的DllNotFoundException。它应该就是这样工作的,我已经添加了一些关于如何使用混合模式程序集的注释。正如你所说,我删除了examples文件夹的lib/文件夹,并用nuget更新了缺少引用的项目,删除了root/sqlite3.dll ref链接。然后一切正常:D我可以看到演示程序正常工作。稍后将处理mono,一步一个脚印!非常感谢您对mythz的帮助!