加载Oracle.DataAccess.dll时出错

加载Oracle.DataAccess.dll时出错,oracle,powershell,powershell-2.0,odp.net,Oracle,Powershell,Powershell 2.0,Odp.net,在powershell中执行以下命令时出错 [Reflection.Assembly]::LoadFile("C:\Oracle\Oracle11gClientR1\ODP.NET\bin\2.x\Oracle.DataAccess.dll") 这就是错误所在 Exception calling "LoadFile" with "1" argument(s): " is not a valid Win32 application. (Exception from HRESULT: 0x8007

在powershell中执行以下命令时出错

[Reflection.Assembly]::LoadFile("C:\Oracle\Oracle11gClientR1\ODP.NET\bin\2.x\Oracle.DataAccess.dll")
这就是错误所在

Exception calling "LoadFile" with "1" argument(s): " is not a valid Win32 application. (Exception from HRESULT: 0x80070
0C1)"
At line:1 char:32
+ [Reflection.Assembly]::LoadFile <<<< ("C:\Oracle\Oracle11gClientR1\ODP.NET\bin\2.x\Oracle.DataAccess.dll")
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

但是运气不好。

在这种情况下,您很可能正在运行
PowerShell 2.0版
不兼容的.NET Framework 4.0版
。尝试使用兼容的.NET Framework版本。查证

Powershell版本运行该命令

$PSVersionTable.psversion
要检查安装的.NET framework版本,请运行以下命令并检查第2行第3列数据

gci "hklm:\SOFTWARE\Microsoft\NET Framework Setup\NDP"
编辑:

还有几点建议:

尝试使用
LoadFrom()
代替

[Reflection.Assembly]::Assembly.LoadFrom("c:\Oracle\Oracle11gClientR1\ODP.NET\bin\2.x\Oracle.DataAccess.dll");
(或)尝试使用
添加类型

Add-Type -AssemblyName "c:\Oracle\Oracle11gClientR1\ODP.NET\bin\2.x\Oracle.DataAccess.dll" 

另外,请确保您没有尝试从64位Windows
Powershell
加载32位
Oracle.DataAccess.dll
。我的意思是,它们应该是兼容的。

您是如何运行该命令的?我以管理员的身份在powershell中运行,不应该是这样。再次尝试运行,如果仍然出错,请准确显示您是如何运行的?可能是屏幕截图。我试过多次,这是一行代码。没有别的了。我复制并粘贴了问题中的全部内容。我运行了命令,powershell版本为2,而dot net版本为3和3.5
Add-Type -AssemblyName "c:\Oracle\Oracle11gClientR1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"