加载Oracle.DataAccess.dll时出错
在powershell中执行以下命令时出错加载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
[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位WindowsPowershell
加载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"