2

MS 対 C# 2012

MEF を使用して、データベースからロードされた複数のバイナリ アセンブリを相互接続するアプリケーションを開発しています。別のプラグイン アセンブリの 1 つが、メイン アプリケーションに含めることができないサード パーティの DLL に依存しています。そのサード パーティの dll をメイン アプリケーションの参照に含めると (プラグインにも参照があります)、コンパイルして実行すると、アプリケーションはスムーズに実行されます。しかし、その DLL をメイン アプリケーションの参照から削除すると (実際には必要ありません。プラグインのプロジェクトでのみ参照する必要があります)、AppDomain.CurrentDomain.AssemblyResolveを使用します。データベースからサード パーティの DLL アセンブリをロードするイベントを実行すると、問題なく実行されますが、後で実行時に、プラグインが (そのサード パーティのアセンブリにある) XXX 型を使用しようとすると、アプリケーションで例外が発生し、見つからないというエラーが表示されます。メイン アセンブリの XXX タイプ。私は立ち往生しています。

誰がそれを引き起こす可能性があるか知っていますか? 正気の説明は非常に高く評価されます。

4

2 に答える 2

0

もっと良いアプローチを見たいと思っていますが、MEF が使用されたプロジェクトの私のチームは、サード パーティのアセンブリを参照する他のプロジェクトで、次のようなポスト ビルド イベントを実行することにしました。

xcopy /Y /I /D "$(TargetDir)*.*" "$(SolutionDir)YourMainProjectNameHere\Bin\$(ConfigurationName)\" 

もちろん、これが機能するには、他のプロジェクトのサードパーティの参照も「ローカルにコピー」に設定する必要があります。

于 2013-06-26T14:40:21.537 に答える