PowerShell 호스팅 작업을 수행하고 많은 읽기 작업을 수행했지만 이상한 동작이 나타나고 내가 생각한 것처럼 호스트를 이해하지 못할지 궁금합니다.PowerShell 호스팅 이해
나는 RunspaceFactory와 실행 영역을 만드는 오전 :
var runSpace = RunspaceFactory.CreateRunspace()
을 내 호스트의 실행을 통해 동일한 실행 영역을 활용하고있다. 호스트를 처음 시작하면 다음과 같이 Import-Module 명령을 호출합니다.
var pipeline = runSpace.CreatePipeline();
var psCommand = new Command("Import-Module");
psCommand.Parameters.Add("Name", directory + "MyModule");
pipeline.Commands.Add(psCommand);
pipeline.Invoke();
"directory"는 기본 모듈 디렉토리가 아닌 디렉토리입니다. PowerShell 명령 창에서 똑같은 구문을 사용하여 동일한 import-module 명령을 사용할 수 있습니다. 명령이 사용자 정의 호스트에서 성공적으로 완료된 것 같습니다.
var pipeline = runSpace.CreatePipeline();
var psCommand = new Command("Get-Stuff");
pipeline.Commands.Add(psCommand);
var stuff = pipeline.Invoke();
을하지만 호출에 나는 "GET-재료"는 cmdlet..etc 아니라고 예외를 얻을 : 나중에 실행에 나는 모듈 내에서 cmdlet을 호출하는 시도합니다.
내 이해는 Runspace가이 유형의 상태를 유지한다는 것이 었습니다. 그렇지 않은가요? 다른 프로젝트에서 성공적으로 호스트를 만들었습니다. 두 가지 주요 차이점은 호스트가 기본 모듈 디렉토리 (Documents \ Modules \)를 사용하고 있으며 다음과 같이 CreateRunspace() 메소드를 호출한다는 것입니다.
var runspace = Runspace.CreateRunspace (customHost);
상태를 유지하려면 PSHost를 정의해야합니까?