0

アプリケーション内で CodeDom を使用してコンパイルしたい c# ソースがあります (プラグイン用)。

一部のコレクションで Linq 拡張関数を使用する場合を除いて、すべて正常に動作します

var dict = new Dictionary<KeyType, ValueType>();
....
dict.Any(KV=>KV.Key == "Some Key");

このコードを含むソースをコンパイルしようとすると、WindowsBase の DependencyObject への参照が見つからないという CodeDom のエラーが表示されます。

なぜこれが起こっているのかわかりません。Dictionary クラスも Any 拡張メソッドも、明らかに Windows.Forms の一部であるそのクラスを参照しません。

私は通常、癖を無視し、CodeDom に参照を追加させて先に進みますが、どうやら WindowsBase は特別であり、常に配布されているわけではなく、正しくインストールされていない可能性のあるユーザーに問題を引き起こしたくありません。

4

1 に答える 1

1

アプリケーションに WindowsBase への参照を追加し、常にコピーするように設定することで、差し迫った問題を解決しました。その後、codeDom に参照を正しく追加できました。

DLL が必要な理由についてはまだ混乱していますが、それを回避しました。

于 2010-06-14T18:40:21.733 に答える