2011-02-09 2 views
1

COM 구성 요소와 해당 PIA가 GAC에 설치되어 있습니다. PowerShell에서 수행 할 수있는 작업은PowerShell을 호스팅 할 때 COM PIA 가져 오기

$a = New-Object -com MySvr.ProgId 
$x = $a.Method([MySvrLib.MyEnum]::enumValue) 

이며 COM 열거 형을 이해합니다.

$x = $a.Method([MySvrLib.MyEnum]::enumValue) 

내가 "유형 [MySvrLib.MyEnum] 찾을 수 없습니다 얻을 : 있는지 확인 나는 실행 영역을 사용하여 내 응용 프로그램에서 PowerShell을 호스팅 할 때

그러나,이 코드를 RunSpace.SessionStateProxy.SetVariable를 통해 내 구성 요소 인스턴스를 제공하고 호출 이 유형을 포함하는 어셈블리가로드됩니다. "

내 구성 요소의 형식 정의를 호스팅 된 PowerShell 인스턴스로로드 할 수 있습니까?

답변

1

RunspaceConfiguration (새 Runspace를 구성하는 옵션)에는 PIA를 가리키는 AssemblyConfigurationEntry 개체를 추가 할 수있는 Assemblies 속성이 있습니다. 참고 : AssemblyConfigurationEntry의 생성자는 Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c과 같은 어셈블리 정규화 된 이름을 필요로합니다.

+0

감사합니다. RunSpace를 만든 후 rs.RunspaceConfiguration.Assemblies.Append (새 AssemblyConfigurationEntry ("MySvr", @ "C : \ Path \ To \ MySvrPIA.dll"))를 시도하고 "파일 또는 어셈블리를로드 할 수 없습니다."MySvr '또는 그 의존성 중 하나가 될 수 있습니다. 모듈에 어셈블리 매니페스트가 포함될 것으로 예상됩니다. " RunSpace를 열 때. 내가 도대체 ​​뭘 잘못하고있는 겁니까? –

+1

GAC의 PIA 이름은 어셈블리 자격을 갖춘 이름을 제공해야합니다. 'Microsoft.Office.Interop.Excel, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c'와 같은 것 –

+0

그랬습니다. 감사! –

관련 문제