我正在使用PowerShell对Oracle取得了很大的成功。
我正在使用ODP托管提供商。由于提供程序可以安装在不同的位置,因此Add-Type -Path
需要在不同的计算机上进行不同的指示。
我希望能够以不依赖于DLL的完整路径的方式引用此程序集。
答案 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)'