Vb.net 使用Oracle客户端11部署.Net应用程序

Vb.net 使用Oracle客户端11部署.Net应用程序,vb.net,oracle,oracleclient,Vb.net,Oracle,Oracleclient,我有点紧张,但它不起作用。有人能告诉我还有什么要查吗 我采取了以下步骤: 我将当前安装的Oracle(11gR2_x32)中的dll添加到项目的根目录中。我没有像帖子中说的那样使用基本的lite,但是我假设dll是一样的,对吗 oci.dll ociw32.dll Oracle.DataAccess.DLL orannzsb11.dll Oracioc11.dll oraociicus11.dll OraOps11w.dll 选择项目中的每个dll,并将“生成操作”设置为“内容”,将“复制到

我有点紧张,但它不起作用。有人能告诉我还有什么要查吗

我采取了以下步骤:

  • 我将当前安装的Oracle(11gR2_x32)中的dll添加到项目的根目录中。我没有像帖子中说的那样使用基本的lite,但是我假设dll是一样的,对吗

    • oci.dll
    • ociw32.dll
    • Oracle.DataAccess.DLL
    • orannzsb11.dll
    • Oracioc11.dll
    • oraociicus11.dll
    • OraOps11w.dll
  • 选择项目中的每个dll,并将“生成操作”设置为“内容”,将“复制到输出目录”设置为“始终复制”

  • 添加了对Oracle.DataAccess的引用

  • 在我的vb代码中添加了“导入Oracle.DataAccess.Client”

  • 代码工作正常,但仍需要用户安装Oracle。我的目的是不让他们安装oracle。我验证了当他们安装我的程序时,所有的dll都存在于程序文件夹中

    我还能查什么

    代码工作正常,但仍需要用户安装Oracle。我的目的是不让他们安装oracle

    据我所知,没有真正的“嵌入式”Oracle,您无法避免安装Oracle数据库服务器。如果您真的需要,有几种好的选择,包括但不限于:SQLite、MS SQL Server Compact或LocalDB1、Interbase/Firebird等

    几年前,Oracle为公司运行了一个许可计划,您可以将Oracle安装程序集成到自己的安装程序中,并使其对用户“不可见”,但这仍然会安装完整的Oracle服务器。例如,早期版本的PTC Pro/INTRALINK就是这样安装的——您不需要单独安装Oracle。我不知道这个许可证计划是否仍然有效,但即使有效,你可能正在考虑一项非常重要的财务投资

    顺便说一句,Oracle的完全管理的.NET提供程序是-这将进一步简化客户端部署,并消除32位与64位的不匹配


    1 LocalDB在技术上不像“进程中”那样“嵌入”,但这可能不会对最终用户产生影响

    代码工作正常,但仍需要用户安装Oracle。我的目的是不让他们安装oracle

    据我所知,没有真正的“嵌入式”Oracle,您无法避免安装Oracle数据库服务器。如果您真的需要,有几种好的选择,包括但不限于:SQLite、MS SQL Server Compact或LocalDB1、Interbase/Firebird等

    几年前,Oracle为公司运行了一个许可计划,您可以将Oracle安装程序集成到自己的安装程序中,并使其对用户“不可见”,但这仍然会安装完整的Oracle服务器。例如,早期版本的PTC Pro/INTRALINK就是这样安装的——您不需要单独安装Oracle。我不知道这个许可证计划是否仍然有效,但即使有效,你可能正在考虑一项非常重要的财务投资

    顺便说一句,Oracle的完全管理的.NET提供程序是-这将进一步简化客户端部署,并消除32位与64位的不匹配



    1从技术上讲,LocalDB不像“进程中”那样“嵌入”,但这可能不会对您的最终用户产生影响。

    DLL是针对Oracle客户端的—不是服务器正确的,我想要客户端。我不想安装服务器。服务器已存在于其他位置。我的程序只是访问服务器。然后它应该可以工作-您是否收到错误消息?您可能也需要ODP.net DLL—看看这些DLL是针对Oracle客户端的—不是服务器正确,我想要的是客户端。我不想安装服务器。服务器已存在于其他位置。我的程序只是访问服务器。然后它应该可以工作-您是否收到错误消息?您可能也需要ODP.net DLL—看一看,不,我认为您误解了我的问题。我并没有试图在我的程序中嵌入数据库,我只是试图访问一个已经存在的数据库(在我的程序外部)。@malt_man则用户不需要“安装Oracle”。它应该按原样工作。不工作的典型原因是,如果您为“任何CPU”构建,并且用户的机器恰好与您的机器具有不同的“比特度”。您应该始终构建“x86”或“x64”(或两者都构建),并分别分发本机Oracle DLL集。正如我已经提到的,完全管理的提供者最终应该解决这个问题。另外,您使用的是什么类型的连接字符串?它是否依赖于tnsnames.ora?如果是,您是否也分发它?你的用户收到错误信息了吗?没有,我想你误解了我的问题。我并没有试图在我的程序中嵌入数据库,我只是试图访问一个已经存在的数据库(在我的程序外部)。@malt_man则用户不需要“安装Oracle”。它应该按原样工作。不工作的典型原因是,如果您为“任何CPU”构建,并且用户的机器恰好与您的机器具有不同的“比特度”。您应该始终构建“x86”或“x64”(或两者都构建),并分别分发本机Oracle DLL集。正如我已经提到的,完全管理的提供者最终应该解决这个问题。另外,您使用的是什么类型的连接字符串?它是否依赖于tnsnames.ora?如果是,您是否也分发它?您的用户是否收到任何错误消息?