0

.NET 3.5 で WPF を使用して GUI アプリケーション フレームワークを構築しています。

私のメイン アプリケーションには依存関係がほとんどありません。そのジョブの 1 つは、外部アセンブリ (プラグイン) をロードし、そこからウィンドウとコントロールを要求することです。

その部分はうまく機能します。

プラグインが WPF フレームワークで定義されていないコントロールを使用すると、問題が発生します。たとえば、WPF Toolkit を参照し、DatePicker. メイン アプリケーションがXAMLファイルを読み取り、DatePicker.XAMLParseException

タイプ 'Microsoft.Windows.Controls.DatePicker' が見つかりません。コンパイル時に使用されるアセンブリは、読み込み時に使用されるものとは異なる可能性があり、型が欠落しています。

この例外がスローされる理由は明らかで、メイン アプリケーションに WPF Toolkit への参照を追加すると問題が解決します。しかし、プラグインで使用されるすべてのコントロールに対して、メイン アプリケーションに参照を追加することはできません。それらのコントロールが何であるかわからないからです。

また、メイン アプリケーションが を使用してプラグインをロードすることも追加しますAssembly.LoadFrom

質問は次のとおりです。

プラグインにその依存関係をメイン アプリケーションのディレクトリにコピーさせてから、それらも読み込ませる必要がありますか? 他のオプションは何ですか? この問題は .NET 4 で何らかの形で対処されていますか?

4

2 に答える 2

1

必ずしも良い方法ではありませんが、ILMergeが役立つ場合があります。そのリンクを探しているとき、私は同様に働くかもしれない この記事への参照を見ました。

于 2012-07-13T20:54:57.597 に答える
0

WPF Toolkit dll をプラグインと一緒にしようとしましたか? 別のオプションはGACに登録することです

于 2012-07-14T08:17:53.390 に答える