2017-04-27 58 views

回答

0

我想你可能會從PowerShell的註冊表中獲取安裝目錄。一個可能的位置在這裏:

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)' 
+0

似乎AssemblyFoldersEx不存在於64位框架中。 –

1

我發現這個解決方案,它依賴於知道想要的組件的強名稱。它似乎在我已經完成的測試中可靠地工作

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

我看到這個工程。但是,當Oracle有新版本或者代碼在不同版本的機器上運行時,這怎麼比硬編碼的目錄路徑更好? – lit