首页 > 代码库 > 未能加载 Oracle.ManagedDataAccessDTC.dll 或它的依赖项

未能加载 Oracle.ManagedDataAccessDTC.dll 或它的依赖项

第一个项目做完了,交付给测试进行测试,碰到一堆问题,当然不是程序上的,而是环境上的!

这个项目是用 EF 5 + MVC5 + Oracle 11 开发的。

驱动用的是 Oracle.ManagedDataAccess ,本地WIN7/8.1运行一点问题都没有。今天下午打包到 WIN 2008 上,解决了一堆环境问题后,一个大难题出现了:

Could not load file or assembly ‘Oracle.ManagedDataAccessDTC.dll‘,什么 PSPManager..ctor 之类的

出现这个问题是因为某些地方用了 TransactionScope

把驱动卸掉,重装了N回,重启了N回,于事无补。

把这个DLL放到 Bin 下,运行网站直接就报错,还是无法加载。

Oracle 官方文档中只说不要直接引用这个DTC.dll ,会由 ManagedDataAccess 自动去调用,要区分 32位和64位,其它的基本没提。

GOOGLE上、BING上可以搜到几个相关的贴子,但是都是没有结果。度娘就更不用提了。

跟据报的那什么 PSPManager..Ctor 用反编译工具查看了一下,跟本就没有那个类。

不过有个 Microsoft.VisualC 的引用。

本地GAC (C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualC)下有个11.0.xxx 版本的,

对照那台测试服务器,发现只有个8.XXX的版本。

尝试把本地的考过去,运行结果一样,没有用处。

眼看加班都3个半小时了,加上一下午时间,都整了快8个小时,还没整好这玩意,心里急的冒火。

顺手搜了一下C++运行库,下了个64位的

Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)

http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13523

 

安装,重启网站,在测试,通过!