在2个星期前,用vs2013 +oracle11g开发一个cs的工具时,遇到这么个错误。简述一下项目情况:
vs2013 framework4.5 +oracle 11g +EF5
错误情况:
试图加载Oracle.ManagedDataAccessDTC.dll不正确····具体的忘记了。大概就这么个情况,就是说这个dll加载错误。
因为项目oracle的连接用的是Oracle.ManagedDataAccess.Client,程序运行时需要调用Oracle.ManagedDataAccessDTC,但是这个程序集官方说是不需要显示调用,即不用在程序里面调用,程序运行时自动调用。在网上查了下,说是要把Oracle.ManagedDataAccessDTC放到程序运行目录下,于是放到relase目录后问题依旧存在。仔细查看报错的地方,发现是实体的个别属性值改变(update)之后,保存到数据库时(savechange),报的错误。断断续续折腾两天后,找到了原因。
程序发布平台是x86,然而我放进去Oracle.ManagedDataAccessDTC.dll是64位的,要说我怎么知道是64还是32?绝招是看文件大小:32的是59kb,64的是68kb。这是我唯一能区分的办法。在准确些就是右键》属性 去看文件“占用空间”,这个准确些。
于是去: