はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【PowerShell】Import-Moduleコマンドで古いモジュールが読み込まれるときの対処法

はじめに

PowerShellのモジュール開発をしていた際にImport-Moduleを実行してもキャッシュが読み込まれてしまう現象にあいました。

# before.ps1
Import-Module "${PSScriptRoot}/../UnityPackageMaker"

# モジュールを修正しても前回のモジュールが読み取られてしまう
Hoge-Fuga

その対処法をメモしておこうと思います。

対処法

単純にキャッシュを削除すればよいです。

# after1.ps1
Remove-Module UnityPackageMaker -ErrorAction SilentlyContinue
Import-Module "${PSScriptRoot}/../UnityPackageMaker"

Hoge-Fuga

-ErrorAction SilentlyContinueを付与することで、エラーが発生してもエラーメッセージを表示せずに処理を続行するようにしています。

もしくは-Forceを付与することで読み込まれたモジュールを削除し、再度インポートできます。

# after2.ps1
Import-Module "${PSScriptRoot}/../UnityPackageMaker" -Force

Hoge-Fuga