私は 3 つのプロジェクト、viz Shell.Core
、Shell
、およびを持っていServices.Employees
ます。Shell
からパーツをインポートしますServices.Employees
。つまり、後者のプロジェクトは外部にあり、どのソリューション プロジェクトでも参照されません。と同様にShell
、「Shell.Core」もクラス ライブラリではなく WPF アプリケーションです。特定の共有 UI コンポーネントを定義するため、DevExpress のプロジェクト タイプとして開始し、すべての正しい参照を含めました。
Services.Employees
Core
は、使用する特定の基本クラスを定義する を参照します。ここで、スタートアップ アプリケーションShell
が をロードする必要がCore
あり、次に MEF 構成を実行Services.Employees
して DirectoryCatalog からパーツをロードしますが、MEF は依存関係を認識Core
し、そのカタログからそれらをロードしようとしますが、ホスト アプリケーションは既にこれらのCore
依存関係を参照しています。
例として、合成を試みると、次のようなエラーが発生します。
例外: 'TypeLoadException': アセンブリ 'XTime900.Shell.Core、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' から型 'Shell.Core.MappedViewModel`1' を読み込めませんでした。
これから抜け出す方法は何ですか?Shell.Core.MappedViewModel
既に参照プロジェクトにあるのに、もインポートする必要がありますか? クラス ライブラリに変換Core
する必要があります。カタログ ディレクトリに DLL として表示され、MEF はそれを の依存関係としてロードしServices.Employees
ますか? この粘着性の小さな問題を回避する他の方法はありますか?