0

MEF を使用してライブラリからクラスを取得するアプリケーションがあります。インターフェイス ISapphirePlugin を定義しました。2 つのライブラリには、このインターフェイスを実装するクラスがあり、アプリケーションの起動時にロードする必要があります。MVVM Light に移行する前はすべて正常に動作していましたが、MVVM Light ライブラリもアプリケーション ディレクトリにあるため、MEF コードが失敗します。すべてのライブラリは、実行可能ファイルと同じフォルダーにあります。

var catalog = new DirectoryCatalog(".");
var container = new CompositionContainer(catalog);
IEnumerable<ISapphirePlugin> modules = container.GetExportedValues<ISapphirePlugin>();

ReflectionTypeLoadException をスローすると、ローダーの例外は次のようになります。

ファイルまたはアセンブリ 'Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。指定されたファイルが見つかりません。":"Microsoft.Practices.ServiceLocation、Version=1.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35"}

何か私にできることはありますか?

4

1 に答える 1

1

現在、MVVMLight には CommonServiceLocation nuget パッケージが必要だと思います。これは役立つかもしれません: Microsoft.Practices.ServiceLocation はどこから来たのですか?

于 2013-03-19T06:53:10.220 に答える