MEFのコンポジションコンテナとディレクトリカタログで奇妙な問題が発生し、アセンブリを含むフォルダへのフルパスを渡します。
C:\ Program Files \ MyCompany \ MyApp \ Bin
AssemblyA:ExportedTypeA、ExportedTypeB
AssemblyB:BaseExportedTypeA、BaseExportedTypeB
別の場所(C:\ users \ Me \ dev \ project \ foo \ bar \ bar2 \ bin \ debug \ OtherApp.Exe)から実行
私が呼び出すアプリケーションでは:
string ProviderPhysicalPath = @"C:\Program Files\MyCompany\MyApp\Bin";
using (DirectoryCatalog catalog = new DirectoryCatalog(ProviderPhysicalPath))
using (CompositionContainer container = new CompositionContainer(catalog))
{
container.ComposeParts(this);
}
次container.ComposeParts(this)
の例外が発生します。
構成により、単一の構成エラーが発生しました。根本的な原因を以下に示します。詳細については、CompositionException.Errorsプロパティを確認してください。
1)パス'C:\ USERS \ Me \ dev \ project \ foo \ bar \ bar2 \ BIN \ DEBUG \BIN\'の一部が見つかりませんでした。
紛らわしいのは2つの部分です。
- 指定していないディレクトリを検索するのはなぜですか?
- そして、なぜそれを実行するディレクトリに\ bin \を追加するのですか?
私が間違っていることはありますか?