오라클에 대해 PowerShell을 사용하여 많은 성공을 거두고 있습니다.PowerShell Add-Type 전체 경로가없는 OracleManagedDataAccess.dll
ODP Managed Provider를 사용하고 있습니다. 공급자가 다른 위치에 설치 될 수 있으므로 Add-Type -Path
은 다른 컴퓨터에서 다르게 가리켜 야합니다.
DLL에 대한 전체 경로에 의존하지 않는 방식으로이 어셈블리를 참조하고 싶습니다.
오라클에 대해 PowerShell을 사용하여 많은 성공을 거두고 있습니다.PowerShell Add-Type 전체 경로가없는 OracleManagedDataAccess.dll
ODP Managed Provider를 사용하고 있습니다. 공급자가 다른 위치에 설치 될 수 있으므로 Add-Type -Path
은 다른 컴퓨터에서 다르게 가리켜 야합니다.
DLL에 대한 전체 경로에 의존하지 않는 방식으로이 어셈블리를 참조하고 싶습니다.
잠재적으로 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)'
원하는 솔루션의 강력한 이름을 알고 있어야하는이 솔루션을 발견했습니다. 그것은 내가 수행 한 테스트에서 안정적으로 작동하는 것 같습니다.
[void][reflection.assembly]::Load("Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342")
나는 이것이 효과가 있다는 것을 알았다. 그러나 오라클이 새로운 버전을 갖거나 다른 버전의 머신에서 코드가 실행될 때 하드 코딩 된 디렉토리 경로보다 어떻게 더 좋은가? – lit
AssemblyFoldersEx는 64 비트 프레임 워크에 없습니다. –