PowerShell Add-Type OracleManagedDataAccess.dll没有完整路径

时间:2017-04-27 10:07:23

标签: .net oracle powershell odp.net

我正在使用PowerShell对Oracle取得了很大的成功。

我正在使用ODP托管提供商。由于提供程序可以安装在不同的位置,因此Add-Type -Path需要在不同的计算机上进行不同的指示。

我希望能够以不依赖于DLL的完整路径的方式引用此程序集。

2 个答案:

答案 0 :(得分:1)

我找到了这个解决方案,它依赖于知道所需组件的强名称。它似乎在我完成的测试中可靠地工作

[void][reflection.assembly]::Load("Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342")

答案 1 :(得分:0)

我认为您可以通过PowerShell从Registry获取安装目录。一个可能的位置在这里:

Get-ChildItem HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\odp.net.managed

虽然这可能会因安装的.NET版本而异。您可以尝试使用通配符:

Get-ChildItem HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\*\AssemblyFoldersEx\odp.net.managed

最终,您可能需要获取该注册表项的某个属性的值,例如,如果它是'(默认)'值:

(Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\*\AssemblyFoldersEx\odp.net.managed).'(default)'