長いプロジェクトの過程で作成したPowerShellコードが大量にあります。これらのスクリプトはさまざまな機能を実行し、それらのほとんどはプロジェクトの範囲内で他のスクリプトに何らかの形で依存しています。現在、作業はそれぞれ多くの機能を含むいくつかのファイルで構成されています。もともと、これらのスクリプトを操作するために、すべてのスクリプトファイルは環境に無計画にドットソースされていました。
ただし、最近、Powershell 2.0でモジュールが導入されていることを知り、これらのスクリプトを一緒に展開したいと思います。モジュールの内容はすべて一緒にロードされるので、ソース管理を支援するために、各スクリプトが独自のファイルを持つようにファイルを分割したいと思います。ただし、現在、スクリプト間の接続については少しわかりません。
いくつかのテストを行いましたが、各関数のExport-ModuleMemberコマンドを個々の.ps1ファイルに移動しても問題ないようです。これは、C#でのパブリックスコープとプライベートスコープのように、独自のスコープを宣言する関数のようです。ただし、それを行った後、私の.psm1ファイルには次のものしか含まれていません。
Get-ChildItem -recurse $psScriptRoot | where { $_.Extension -eq ".ps1" } | foreach { . $_.FullName }
それは正しいと思いますか?すべてのスクリプトはドットソースであり、すべてのスクリプトはその仮定の下で相互に参照します。代わりに、$ psScriptRootに相対的な場所を使用して相互に参照する必要がありますか?
これらの両方の方法とは異なる方法はありますか?誰かアドバイスはありますか?これらについてはまだよくわかりません。