カスタムPowershellスクリプトを使用するVSTSビルド定義を設定しようとしています。私は2つの異なるビルド定義で使用できる2つの関数を持つBuildPackage.psm1モジュールファイルを作成しました。私は、これらの作業の1つを取得しようとしているし、モジュールのインポートタスクを設定した後、関数の1つを実行するタスクが続いています。カスタムPowershellモジュールをVSTSビルドタスクで使用する方法
私はこの場所に私のモジュールをコピーした:最初のタスクのために
.\src\Tools\PSModules\BuildFontPackage\BuildFontPackage.psm1
を、モジュールをインポートするために、私は次のインラインスクリプトを使用してPowerShellのスクリプトタスクを追加しました:
$env:PSModulePath = "$env:BUILD_SOURCESDIRECTORY\src\Tools\PSModules;$env:PSModulePath"
Import-Module -Name BuildFontPackage.psm1
インポートモジュールコマンドが実行され、動作するように表示されます。
:私はインポートモジュールに-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