SQLite不用安装的呀,直接调用。要用x86的sqlite版本,
用x86编译  如果是Web的还要把IIS设成运行在x86上。这样就可以了。
我调用的sqlite机器上从没装什么sqlit直接拿那个DLL就能跑了。都是用x86编译的

解决方案 »

  1.   

    另外 sqltie.net 上面一堆版本  都是用在什么地方的  英文不好, 看了半天 理解不了
      

  2.   

    自己去官网看SQLite的运行需求,人家很清楚的写着需要C++运行时
      

  3.   


    用编译成32位的程序+32位的dll试了 也不行
      

  4.   

    SQLite不用安装,直接用它的dll即可。
      

  5.   

    额这个问题同问,前段时间也遇到过这个问题,后来没办法只能安装SQLite包,楼主解决了没?
      

  6.   


    sqlite是用c/c++来写的,要依赖c/c++ runtime的东西,完整安装包里面就有安装
    要在bin目录下面加上runtime的几个dll,并且改一个config文件,具体我懒得查了,当年我研究这个两三天啊
      

  7.   

    1.没用过就不会在这里说了,我们做的项目就是用到sqlite  就是直接用一个dll到处布属,还没发现过像楼主说的那样的问题,也没有在客户机上装什么C++ runtime
      

  8.   

    1.没用过就不会在这里说了,我们做的项目就是用到sqlite  就是直接用一个dll到处布属,还没发现过像楼主说的那样的问题,也没有在客户机上装什么C++ runtime那证明你们测试不行了
      

  9.   

    http://download.csdn.net/detail/wawd74520/6878367
    用这个dll试试  
      

  10.   

    实践证明 我把客户机上的C++ runtime
    卸载了也照样运行
      

  11.   

    1.没用过就不会在这里说了,我们做的项目就是用到sqlite  就是直接用一个dll到处布属,还没发现过像楼主说的那样的问题,也没有在客户机上装什么C++ runtime那证明你们测试不行了话说的不能太绝对,是你版本用的不对你去SQLITE官网看看吧, 1.0.66之后的版本有看到用了C++ Runtime,
    你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧
      

  12.   

    1.没用过就不会在这里说了,我们做的项目就是用到sqlite  就是直接用一个dll到处布属,还没发现过像楼主说的那样的问题,也没有在客户机上装什么C++ runtime那证明你们测试不行了话说的不能太绝对,是你版本用的不对你去SQLITE官网看看吧, 1.0.66之后的版本有看到用了C++ Runtime,
    你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧我上一个项目用的是最新的,我用的是1.0.85的
    你试试下载他们的完整安装包,然后卸载你自己机器的runtime,然后试试安装,中间肯定会看到安装runtime的。
    这个在我用sqlite的第一天看他们官网的时候就知道了另外,sqlite3这个核心一直都是用c/c++写的,sqlite.net只是一个封装而已
      

  13.   

    1.没用过就不会在这里说了,我们做的项目就是用到sqlite  就是直接用一个dll到处布属,还没发现过像楼主说的那样的问题,也没有在客户机上装什么C++ runtime那证明你们测试不行了话说的不能太绝对,是你版本用的不对你去SQLITE官网看看吧, 1.0.66之后的版本有看到用了C++ Runtime,
    你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki看到我和你都是错的,页面上第一段就说了,下载的包,如果有static的,都是要装c++ runtime的,反之则不用,这个不是版本的问题
      

  14.   

    1.没用过就不会在这里说了,我们做的项目就是用到sqlite  就是直接用一个dll到处布属,还没发现过像楼主说的那样的问题,也没有在客户机上装什么C++ runtime那证明你们测试不行了话说的不能太绝对,是你版本用的不对你去SQLITE官网看看吧, 1.0.66之后的版本有看到用了C++ Runtime,
    你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki看到我和你都是错的,页面上第一段就说了,下载的包,如果有static的,都是要装c++ runtime的,反之则不用,这个不是版本的问题那就是说没有static的就不用装C++ runtime拉?还有我下载的DLL是这里下的 我软件所用的版本编译方式是 非 PLATFORM_COMPACTFRAMEWORK编译方式的版本。 一直用都没装过Runtime C++ 目前只在机器上网net3.5 然后直接调用SQLite.DLL 版本就是1.0.66 http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/
      

  15.   

    1.没用过就不会在这里说了,我们做的项目就是用到sqlite  就是直接用一个dll到处布属,还没发现过像楼主说的那样的问题,也没有在客户机上装什么C++ runtime那证明你们测试不行了话说的不能太绝对,是你版本用的不对你去SQLITE官网看看吧, 1.0.66之后的版本有看到用了C++ Runtime,
    你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki看到我和你都是错的,页面上第一段就说了,下载的包,如果有static的,都是要装c++ runtime的,反之则不用,这个不是版本的问题那就是说没有static的就不用装C++ runtime拉?还有我下载的DLL是这里下的 我软件所用的版本编译方式是 非 PLATFORM_COMPACTFRAMEWORK编译方式的版本。 一直用都没装过Runtime C++ 目前只在机器上网net3.5 然后直接调用SQLite.DLL 版本就是1.0.66 http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/
    我觉得就是将sqlite3嵌入到dll一样,把runtime的dll也嵌入了而已
    另外,确实要指正的,sqlite3这个核心是c/c++写的,不然根本就不会有x86/x64的问题
      

  16.   

    1.没用过就不会在这里说了,我们做的项目就是用到sqlite  就是直接用一个dll到处布属,还没发现过像楼主说的那样的问题,也没有在客户机上装什么C++ runtime那证明你们测试不行了话说的不能太绝对,是你版本用的不对你去SQLITE官网看看吧, 1.0.66之后的版本有看到用了C++ Runtime,
    你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki看到我和你都是错的,页面上第一段就说了,下载的包,如果有static的,都是要装c++ runtime的,反之则不用,这个不是版本的问题那就是说没有static的就不用装C++ runtime拉?还有我下载的DLL是这里下的 我软件所用的版本编译方式是 非 PLATFORM_COMPACTFRAMEWORK编译方式的版本。 一直用都没装过Runtime C++ 目前只在机器上网net3.5 然后直接调用SQLite.DLL 版本就是1.0.66 http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/
    我觉得就是将sqlite3嵌入到dll一样,把runtime的dll也嵌入了而已
    另外,确实要指正的,sqlite3这个核心是c/c++写的,不然根本就不会有x86/x64的问题看了他的原码是有sqlite3.c 这个, 用上面的说的非PLATFORM_COMPACTFRAMEWORK变成了引用他本身的DLL#if !PLATFORM_COMPACTFRAMEWORK
        private const string SQLITE_DLL = "System.Data.SQLite.DLL";
    #else
        internal const string SQLITE_DLL = "SQLite.Interop.066.DLL";
    #endif // PLATFORM_COMPACTFRAMEWORK#else
        private const string SQLITE_DLL = "SQLite.Interop.DLL";
    #endif // USE_INTEROP_DLL#else
        private const string SQLITE_DLL = "sqlite3";
    #endif
     [DllImport(SQLITE_DLL)]
        internal static extern IntPtr sqlite3_bind_parameter_name_interop(IntPtr stmt, int index, out int len);    [DllImport(SQLITE_DLL)]
        internal static extern IntPtr sqlite3_column_database_name_interop(IntPtr stmt, int index, out int len);    [DllImport(SQLITE_DLL)]
        internal static extern IntPtr sqlite3_column_database_name16_interop(IntPtr stmt, int index, out int len);    [DllImport(SQLITE_DLL)]
        internal static extern IntPtr sqlite3_column_decltype_interop(IntPtr stmt, int index, out int len);
    所以说下的版本问题吧 用1.0.66的不会出现问题的。。
      

  17.   


    -_-
    就算static里面的,代码都是这样的,只是c#的dll是否把SQLite.Interop.DLL这个文件嵌入而已根本问题就是SQLite.Interop.DLL的编译方式,应该是集成了c++ runtime的库的
    所以你那个66版的不需要安装c++ runtime而已
      

  18.   


    -_-
    就算static里面的,代码都是这样的,只是c#的dll是否把SQLite.Interop.DLL这个文件嵌入而已根本问题就是SQLite.Interop.DLL的编译方式,应该是集成了c++ runtime的库的
    所以你那个66版的不需要安装c++ runtime而已虽然我对c/c++的东西不是很熟,但是我记得在编译c/c++的东西时候,添加相关的*.lib,可以集成到相应的库,而最后不需要把*.lib对应的*.dll引用上的看到static,才想起来,然后去查看了一下静态编译
      

  19.   

    现在很奇怪的 就是  , 部署到 没安装的环境里面  运行不了你下错dll了吧。
    http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载
    Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者
    Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.5)的dll,视你的系统是32位还是64位的。如果下载的不是静态编译的dll,那么你需要两个dll放在指定目录下,一个是sqlite的,一个是VC的runtime包。
      

  20.   

    楼主既然程序编译通过,说明肯定引用了这个DLL,看下程序里面引用的是什么版本,就Copy什么版本到程序目录里面就可以了。
      

  21.   

    现在很奇怪的 就是  , 部署到 没安装的环境里面  运行不了你下错dll了吧。
    http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载
    Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者
    Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.5)的dll,视你的系统是32位还是64位的。如果下载的不是静态编译的dll,那么你需要两个dll放在指定目录下,一个是sqlite的,一个是VC的runtime包。
    问一下,文件名里有bundle,说明里多一句“features the mixed-mode assembly”的,有什么区别吗?
      

  22.   

    winform中引用sqlite.dll,然后点击这个dll,查看你下载的sqlite版本与你写在config中的版本号是否一致,Version=1.0.90.0, 就是这个东西。
      

  23.   


    你怎么知道出错的机器上缺C++运行时呀
    报错信息说得很清楚,是缺Data Provider,不缺C++运行时呀。
      

  24.   

    一直在用1.0.66版的.net 2.0的 System.Data.SQLite.dll ,直接引用、绝对绿色,不用安装,在xp/Win7 64/Win7 32 .net 2.0/.net 4.0 环境下使用,没有发现什么问题
      

  25.   


    你怎么知道出错的机器上缺C++运行时呀
    报错信息说得很清楚,是缺Data Provider,不缺C++运行时呀。这东西有点蹊跷的,调用vc.net编写的程序集如果缺少c++运行时的时候会抛出无法加载程序集异常
      

  26.   

    现在很奇怪的 就是  , 部署到 没安装的环境里面  运行不了你下错dll了吧。
    http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载
    Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者
    Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.5)的dll,视你的系统是32位还是64位的。如果下载的不是静态编译的dll,那么你需要两个dll放在指定目录下,一个是sqlite的,一个是VC的runtime包。
    问一下,文件名里有bundle,说明里多一句“features the mixed-mode assembly”的,有什么区别吗?用bundle的,只需要一个dll,不加的用有两个dll在指定目录下。
      

  27.   

    现在很奇怪的 就是  , 部署到 没安装的环境里面  运行不了你下错dll了吧。
    http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载
    Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者
    Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.5)的dll,视你的系统是32位还是64位的。如果下载的不是静态编译的dll,那么你需要两个dll放在指定目录下,一个是sqlite的,一个是VC的runtime包。
    问一下,文件名里有bundle,说明里多一句“features the mixed-mode assembly”的,有什么区别吗?用bundle的,只需要一个dll,不加的用有两个dll在指定目录下。
    已经用上了,非常感谢!
      

  28.   

    我是一个个的dll试终于找到可以用的 一个