解决方案 »
- ComponentOne C1Excel保存图片
- HttpWebRequest实现自动登录问题?
- 请问...动态生成的控件,TextBox,Button,在同一位置..每次Button都在TextBox底下..怎么样才能让Button在上面呢....
- 懂的人请给说说这样的属性定义
- 在线急等,C#救命题!!!谁帮我做出来100分全给,另再加100!谢了!
- Remoting问题
- 请问除了微软的TTS发声引擎外,还有没有其他比较好的发声引擎呢?
- 这个定义能否简化
- 值类型和引用类型在内存中的位置有什么区别?
- 终止程序...
- SatusStrip里边的东西怎么不能调节大小和位置啊?
- .net4.0 winform 程序闪退,求解决思路
程序目录下需要把System.Data.SQLite.dll拷过去
我刚去官网下了个sqlite 3.5的 64 位dll
唉!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(楼上楼上的兄弟没看清吧,我这可以运行加密过后的软件。没加密的却不行。郁闷啊)。
按理说我的sqlite.dll 没错的啊。为啥就不行了。。
如果你必须要将项目编译为Any CPU,那么对于32位和64位系统就要单独使用不同的dll,但是必须保证那个“Version=1.0.84.0”都是一样的,否则还是要报错。或者设置版本号兼容,够麻烦的。
但是三个公钥标记,和处理器体系结构。都不一样。分别是 MSIL,,,x86,,,AMD64 而我这新本上,assembly 里就没有。一个也没有。是不是这个问题??
我下了官方的演示程序test.exe 是可以操作数据库的啊。我疯了
我加密过的程序,也是可以用数据库的。。为啥我这开发的这环境下,就是不行。
8楼已经回答你了,你需要看一下你的工程编译环境:
如果是x86,那就安装x86版sqlite并引用
如果是x64,那就安装x64版sqlite并引用
你用的SQLite是经过强签名的?
•<bin>\App.dll (optional, managed-only application library assembly)
•<bin>\System.Data.SQLite.dll (required, managed-only core assembly)
•<bin>\System.Data.SQLite.Linq.dll (optional, managed-only LINQ assembly)
•<bin>\x86\SQLite.Interop.dll (required, x86 native interop assembly)
•<bin>\x64\SQLite.Interop.dll (required, x64 native interop assembly) 这个是官网看的。这是啥意思。下载这个版本。。可以自动识别86,64 ????
另外不签名是不允许注册到全局程序集的,也就是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,别用全局程序集,不一定准确哦。
GAC注册完了dll拷到c:\windows下面了。 注册完了。再用VS编译,还是不通过尼码,这二机器一样的啊。为啥那个就能用。这个不能用。用的都是一个工程的文件。日日日日日啊
1. 准备好当前OS可以用的sqlite.dll 先引用着。
2. 准备好 sqlite.32.dll 与 sqlite.64.dll 备用在一边
3. 在main.cs 中,判断OS是32,或64位的。。然后拷贝对应的DLL覆盖当前的sqlite.dll
4. 最后 main.cs 中 new Form() 就OK了。 测试全部通过。恩。最后小小广告一下 http://emao.me 我的博客