0

我有一个在 64 位 Windows 2008 服务器上运行并通过 ODP.net 访问 Oracle 11g 的 C# 控制台应用程序。它已经工作了大约6个月。

我在我的计算机上编译程序,将构建设置设置为“任何 CPU”。6 个月前,我在 Windows 服务器上安装了适当的 64 位 Oracle dll 并且从未替换它 - 我只替换了控制台应用程序的 exe。

我昨晚更新了它 - 现在我收到了一个 BadImageFormat 异常,并显示找不到 Oracle 程序集的消息,这通常意味着我有错误的 dll 编译包。我确认并且我仍在使用原始的 Oracle dll。我还确认我正在我的服务器上编译到“任何 CPU”。

我什至尝试过重新编译和重新加载并找到原始 Oracle dll 的来源并重新加载。

有没有人见过这个?有任何想法吗?

4

1 回答 1

0

所以我在反复试验后发现了这一点。

原来在某个时候我已经将我 PC 上的 ODP 版本更新到了版本 4 .. ,但服务器上的版本是 2 .. 虽然我正确计算了 32 位和 64 位,但它被编译为期望一个特定的版本。

出于某种原因,我不能只是将新的 DLL 复制到服务器上。我必须编译引用 4.* 64 位 dll 的应用程序,然后我可以将所有内容加载到服务器并让它工作。然后我必须删除引用并重新引用 32 位才能继续在我的 PC 上工作。烦人,但它有效。

于 2012-07-12T16:10:43.177 回答