사용자 지정 Powershell 스크립트를 사용하는 VSTS 빌드 정의를 설정하려고합니다. 두 가지 다른 빌드 정의에서 사용할 수있는 두 가지 기능을 가진 BuildPackage.psm1 모듈 파일을 만들었습니다. 이러한 작업 중 하나를 얻으려고하고 모듈을 가져 오기위한 작업을 설정 한 다음 함수 중 하나를 실행하는 작업을 수행했습니다.VSTS 빌드 작업에서 사용자 지정 Powershell 모듈을 사용하는 방법
내가이 위치에 내 모듈을 복사 한 :
: 모듈을 가져올 첫 번째 작업에 대한$env:PSModulePath = "$env:BUILD_SOURCESDIRECTORY\src\Tools\PSModules;$env:PSModulePath"
Import-Module -Name BuildFontPackage.psm1
.\src\Tools\PSModules\BuildFontPackage\BuildFontPackage.psm1
, 나는 다음과 같은 인라인 스크립트를 사용하여 PowerShell은 스크립트 작업을 추가 한
가져 오기 모듈 명령을 실행하며 작업을 나타납니다
: 내가 가져 오기 - 모듈에 -Verbose 매개 변수를 추가하면, 나는 다음과 같은 얻을VERBOSE: Loading module from path 'C:\BA\47\s\src\Tools\PSModules\BuildFontPackage\BuildFontPackage.psm1'.
VERBOSE: Exporting function 'New-Package'.
VERBOSE: Exporting function 'New-AllPackages'.
VERBOSE: Importing function 'New-AllPackages'.
VERBOSE: Importing function 'New-Package'.
New-Package : The term 'New-Package' is not recognized as the name of a cmdlet, function, script file, or Process completed with exit code 0 and had 1 error(s) written to the error stream.
그것은 내 모듈이로드되지 않은 것처럼입니다 : 내가 모듈 내에서 새 패키지 기능을 사용하려고하면
그러나, 다음과 같은 작업에서, 나는이 오류가 발생합니다.
어떻게하면됩니까?
'Get-Module -ListAvailable *'- 이것은 무엇을 반환합니까? –
각 작업은 깨끗한 컨텍스트로 시작되며 이전에로드 된 모듈은 유지되지 않습니다. 스크립트 작업을 별도로하거나 별도의 인라인 스크립트 작업이있는 경우 이러한 각 작업에서 모듈을로드해야합니다. – jessehouwing
이 경우 모듈을 가져 오는 데 사용하는 동일한 인라인 스크립트/태스크에서 모듈을 호출하기에 충분합니다. 그리고 더 복잡한 것이 포함되면, 모든 복잡성은 작업 정의에서 짧은 인라인 스크립트를 사용하여로드되는 모듈에 통합 될 수 있습니다. – Peter