C#+SQLite.dll 太变态了!求高手解决啊
未能加载文件或程序集“file:///E:/采集器/bin/Debug/System.Data.SQLite.dll”或它的某一个依赖项。试图加载格式不正确的程序。 行 247,位置 5。E:\采集器\Main.resx2475
我二个本本。
都是win7 + 64 + vs2010 环境一样的。
可是 一样的程序。在另一台电脑就可以。在我现在的新本本上就是不行。就是加载sqlite.dll错误 。
而经过加密过后的,在我电脑上又可以运行。但是我是开发的啊,本机调试一定要的。可是现在生成,运行,都不行了。。。。。
上面那狗屁提示,打开Main.resx 中,247行。根本没东西。搜索,整个resx里也没有sqlite.dll的
咋解决啊。。。。
32,64平台,这破sqlite咋整。求高手给个解决文案啊。 c# sqlite
[解决办法]
另一台机器上也需要安装sqlite
程序目录下需要把System.Data.SQLite.dll拷过去
[解决办法]
我这一个项目也报这个错误,后来换成32位系统好了
[解决办法]
将项目文件整体搬到另一台电脑上生成,然后运行看看,可能是生活的时候嵌入了信息了,所以直接拿过去运行不了。
[解决办法]
DLL和RESX有什么关系啊,.net程序引用DLL后,默认会搜索系统盘放DLL的位置(好像是C:/xx/System32文件夹),如果找不到会搜索当前的域中的路径,就是你exe所在的路径,把SqlLite.Dll和你的程序一起发布就可以了。
调试的时候,打开你的项目,点开引用,找到System.Data.Sqlite的引用,设置属性复制到本地,为True即可正常调试
[解决办法]
"试图加载格式不正确的程序"是因为项目目标平台和dll的目标平台不一致引起的,如果dll不区分X64的版本,用的是Any CPU编译的,那么就不可能出现这样的错误,否则你要先看清使用的dll对应的目标平台,编译项目也必须对用那个平台编译,否则就要有可能出错。
如果你必须要将项目编译为Any CPU,那么对于32位和64位系统就要单独使用不同的dll,但是必须保证那个“Version=1.0.84.0”都是一样的,否则还是要报错。或者设置版本号兼容,够麻烦的。
[解决办法]
我估计是引用路径的问题
[解决办法]
你工程文件中,SQLite dll引用的路径是怎么设置的?查一下新机器是否符合这样的设定。
[解决办法]
8楼已经回答你了,你需要看一下你的工程编译环境:
如果是x86,那就安装x86版sqlite并引用
如果是x64,那就安装x64版sqlite并引用
[解决办法]
你用的SQLite是经过强签名的?
[解决办法]
不要用强签名的SQLite程序集啊……不然你得先把强签名后的dll扔进系统GAC才行
[解决办法]
和强签名无关,所有版本的SQLite的签名肯定是一样的,不一样就说明是盗版的,官方发布的不会使用不同的签名。
另外不签名是不允许注册到全局程序集的,也就是bin目录下面不带dll的使用方法,那个是预先注册到了全局程序集,也就是C:\Windows\assembly下面。至于如何注册到那个位置,方法很简单,直接把dll文件复制进去即可,也可以通过gacutil.exe进行注册,不过两种方法的注册都会预先验证签名的准确性,签名无效就不让注册。命令为:gacutil /if System.Data.SQLite.dll
我查了下本机曾经安装过的System.Data.SQLite.dll,有一个是Any CPU的,当然也提供了X64的版本,但为了通用性,还是应该选择Any CPU的啊,至于Visual Studio里引用的时候记得去浏览安装目录,找那个dll,别用全局程序集,不一定准确哦。
[解决办法]
补充,想要知道你使用的dll是对应什么平台的,用reflector工具查看dll,点击展开的dll名,能够显示“Platform Target”信息的。
------解决方案--------------------
缺少依赖文件啊,只有那一个文件可不行,System.Data.SQLite.dll,System.Data.SQLite.Linq.dll
[解决办法]
System.Data.SQLite.dll 分32、64版本的。
[解决办法]
SQLite dll 不能同时兼容x64和x86.
根据平台使用不同版本。
[解决办法]
你用的是Net4.0 Client, SQLite Version=1.0.84.0不支持,你的程序改为4.0,再下SQLite for netFx4.0安装就行了。
[解决办法]
VC++2010 sp1环境没装吧
[解决办法]
百度了才知道还有sqlite这个东西。不懂也用不到。帮顶。
[解决办法]
我以前也试过这个问题 开始以为是没有编译为64位版本 后来才现在还是System.Data.SQLite.dll这个dll没有放到程序目录下 或者你看看你的配置文件里的sqlite版本和你的System.Data.SQLite.dll版本是不是一致
[解决办法]
费什么事啊,把 Any CPU 改成 X86 就完了。
[解决办法]
在X86系统下 SQLite Version=1.0.84.0不支持,要改为NET4.0,不是Client,再下个SQLite for netFx4.0安装,什问题也没有。这个问题也曾困扰我几天。
[解决办法]
你不是安装过了吗,你把项目中引用的,或者所有用到那个资源的地方全部移除,重新添加你新安装的bin目录下那个