小さなPowerShellモジュールを実装しました。私は.psm1
ファイルの型をC#クラスとして定義し、それにAdd-Type
を追加しました。さて、モジュールを追加してもう一度取り除くと、型はまだそこにあります。おそらくは正しくありません(たとえば、モジュールの再追加を防ぐ)。 Remove-Module
のドキュメントには、モジュールによってロードされたアセンブリで定義された型もアンロードされると記載されています。しかし、私のモジュールは、ソースコード形式の単なる小さなタイプのアセンブリではない。PowerShell 2モジュールの種類
私は型を独自のDLLに入れてモジュールマニフェストにロードするアセンブリとしてマークすることができますが、現在どのようにソースコードが目に見えているのが好きです。モジュールを使ってDLLを配布すると、なぜ実行可能ファイルが必要なのか不審な点が増えます。
モジュールをアンロードするときに何らかの形で型を取り除くことができますか?または、私はちょうど少なくとも1つのセッションから削除されたモジュールを再追加することが可能であるためにAdd-Type
で潜在的なエラーを無視する必要がありますか?私はむしろそこにDLLを置くことを避けたいと思う(とにかくその小さなモジュールのためにとにかく過剰な)。
Hmは、少なくとも新しいことを学んだ。 'PSObject'にはそうした魔法があることは知らなかった。私が新しいタイプを作成した主な理由は、( 'ps1xml'ファイルを介して)フォーマットを制御し、' PSObject'よりも良いタイプの名前を持つことでした。しかし、明らかにこれはちょうど同様に機能します、ちょうどもう少しハックを感じます:-)ありがとう。 – Joey