【问题标题】:Visual Studio/Oracle Driver HelpVisual Studio/Oracle 驱动程序帮助
【发布时间】:2010-09-24 18:57:35
【问题描述】:

我正在尝试编写一个 Visual Studio C# .net 应用程序,我可以将它放在一个颠覆存储库中。该程序在 oracle 驱动程序 (Oracle.dataAccess) 上运行,并且应该由任何试图访问它的人轻松管理和开发。问题是 Visual Studio 发现开发人员的计算机上安装了 Oracle.DataAccess,并且一些随机用户使用任何版本的 oracle,或者没有安装 oracle 驱动程序,在下载文件后必须更改很多配置来编辑它。我正在尝试找到一种方法来解决这个问题,任何帮助都会很好。

我不想在项目中打包任何即时客户端 DLL,因为存储库所在的服务器非常慢。

【问题讨论】:

  • 我不确定您在问什么,您希望应用程序始终包含/使用 same 版本的 odp.net 文件,而不是比已经安装的?

标签: c# oracle visual-studio-2010 drivers


【解决方案1】:

只要其他机器上安装了您最初链接的最低版本,您就不必担心。

当您在计算机上安装客户端驱动程序时,它应该在全局程序集缓存 (GAC) 中注册 Oracle.DataAccess.dll。您可以浏览C:\Windows\Assembly查看GAC的内容:

请注意,安装还会在 GAC 中安装“策略”文件。这些是binding redirect publisher policies,当与Oracle.DataAccess.dll 的早期版本链接的程序尝试在GAC 中查找它时,它会在运行时被重定向到较新的版本。事实上,即使您随程序重新分发了驱动程序,如果它找到较新的驱动程序而不是您随程序重新分发的驱动程序,它仍然可能从 GAC 加载较新的版本。

【讨论】:

    【解决方案2】:

    我认为解决这个问题的唯一方法是

    打包任何即时客户端 DLL 与项目

    即使服务器速度较慢,您也只需获取这些文件一次(结帐时),然后只需获取更新(如果有),或在“干净”结帐时获取。

    【讨论】:

    • 好吧,我想通了。我只将 .cs 文件放在存储库中,以便其他开发人员可以打开它们,Visual Studio 将在开发人员的桌面上查找 oracle 驱动程序。我没有尝试打包任何 DLL,因为 1. 它需要永远在存储库服务器上 2. 它们可能与各自开发人员的 Oracle 版本冲突。不过谢谢。
    最近更新 更多