2

PowerShell (C# ではなく) で記述された一連の PowerShell モジュールがあり、ユーザーが Get-Help から完全な API の説明を取得できるように、コードにドキュメンテーション コメントを含めています。

新しいモジュールを書いていたとき、ある時点でヘルプ テキストが動かなくなったように見えました。ファイルを保存した後、モジュールを再インポートした後、または PowerShell を再起動してからモジュールを再インポートした後でも、そのファイルのヘルプ テキストに対して行ったその後の更新は表示されません。

次に、テスト モジュールを作成して、問題を再現できるかどうかを確認しました。psm1 ファイルと psd1 ファイルをセットアップし、モジュールをインポートして、get-help を実行し、psm1 ファイルのヘルプを表示しました。次に、psm1 ファイルに 1 行のテキストを追加して保存し、再インポートすると、get-help に新しい行が表示されました。

少し前に、新しいヘルプが認識されるように psd1 ファイルのバージョンを上げなければならないことを読んだことをぼんやりと思い出しますが、私のテスト ケースでは、それは必ずしも必要ではないことが示されました (そして、私は本当にバージョンを上げたくないのです)。

また、インポートされたモジュールがどこかにキャッシュされており、キャッシュされたファイルを削除して新しいテキストを認識させることができるということを読んだことを漠然と思い出しましたが、これらがどこにあるか思い出せません。

したがって、私の目標は、モジュールのバージョンを上げずに、実際のモジュールの psm1 ファイルに保存された改訂されたヘルプ テキストを表示できるようにすることです。アイデア?

4

2 に答える 2

5

一部のモジュールで関数の名前を変更したり更新したりするときに、同様の問題が発生していました。少し検索すると、http://www.powertheshell.com/how-module-command-discovery-works-in-psv3/が見つかりました。特に、古いキャッシュについての最後のビットは言及しています

PS> Get-Module -ListAvailable -Refresh

私のキャッシングの問題を解決したランニング

PS> Get-Help Get-Module -Parameter Refresh

-Refresh [<SwitchParameter>]
    Refreshes the cache of installed commands. The command cache is created when the session starts. It enables
    the Get-Command cmdlet to get commands from modules that are not imported into the session.

    This parameter is designed for development and testing scenarios in which the contents of modules have
    changed since the session started.

    When the Refresh parameter is used in a command, the ListAvailable parameter is required.
于 2013-06-28T22:41:19.997 に答える