私はいくつかの外部.NETアセンブリに含まれる型で動作する必要があるPowerShell v3モジュールを作成しています。PowerShell v3モジュールで外部.NETアセンブリを確実に参照する方法を教えてください。
このモジュールは、容易に展開できるように、このモジュールを合理的に自己完結させたいので、GACにロードされているこれらのアセンブリに依存したくありません。理想的には、必要なアセンブリDLLをモジュールフォルダに配置し、PowerShellを使用して、モジュールがロードされたときにこれらのアセンブリを自動的にロードします。
私はそうのようなアセンブリをロード強引に追加-typeコマンドを使用することができることを知っている:
Add-Type -AssemblyName "Some.Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=sometoken"
しかし、私はalseマニフェストモジュールで必要なアセンブリのプロパティについて読んだことがあると私は期待していますモジュール内の外部アセンブリを参照するための最も確実な方法は何
# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()
:このアプローチは、一見脆弱なアドオンタイプのコードを排除することができますか?マニフェストの依存関係を宣言すると、モジュールがロードされたときに暗黙的にアセンブリがロードされますか?モジュールマニフェストを利用して必要なアセンブリをリストアップすると、アセンブリをロードするコードを記述する必要がありますか?
私は、すでに「Add-Type」アプローチを使用して作業しているので、単純な「働きたい」解決策を探しているわけではありません...私は、最も信頼性の高いやり方についてガイダンスと勧告を探していますこの。その-RequiredAssemblies
パラメータの
このプロパティにアセンブリを確実にリストする方法をご存知ですか?私が完全修飾名を使用し、アセンブリのdllをモジュールのフォルダに置いた場合、十分であるか、何らかのパスを提供する必要がありますか?アセンブリローダーはこれらのアセンブリをどこで探すのですか? – syneptody
@syneptodyロードルールは[MSDN](http://msdn.microsoft.com/en-us/library/yx7xezcf%28v=vs.100%29.aspx)に記載されています.PSHは何もしないと思いますそのモジュールのディレクトリをその検索パスに追加する以外は非常に特別です。おそらく例([PSCX](http://pscx.codeplex.com/)のような)? – Richard
@syneptody私の使い方からは、アセンブリの名前がpsd1ファイルにあり、アセンブリの名前はスクリプトの同じディレクトリにあり、問題なく動作します。たとえば、次のようになります。 'RequiredAssemblies = @( 'IHE.CDA.Generation.Trifolia')' – Tedford