私は3つのプロジェクトを持っています - SilverlightアプリAと2つのSilverlightクラスライブラリB、C。私のシリアル化ロジックは、プロジェクトC、メソッドCallSer()にあります。 BからのルーチンがCallSer()を呼び出すと、すべて正常に動作します。しかし、CのルーチンがCallSer()を呼び出すと、以下のエラーが返されます。私はコピーローカルプロパティを設定しようとしましたが、それは助けにはなりません(コピーローカル= Trueの場合、アセンブリがデバッグフォルダにコピーされています)。これは驚くべきことですが、どの人がこれを解決するかについてのアイデアはありますか?ありがとう。はsilverlightクラスライブラリでsystem.xmlを読み込めませんでした
{System.IO.FileNotFoundException:ファイルまたはアセンブリ をロードできませんでした 'System.Xmlの、バージョン= 5.0.5.0、文化=中立、 なPublicKeyToken = 7cec85d7bea7798e' またはその依存関係の1つ。 システムは、指定されたファイルを見つけることができません。ファイル名: 'System.Xmlの、 バージョン= 5.0.5.0、文化=中立、なPublicKeyToken = 7cec85d7bea7798e'}
アップデート:私は)もう少し分析を行なったし、CallSer(への呼び出しを見つけた別から実際にあります.NETクラスライブラリD.コールスタックの表示はD - > C - > CallSer()です。私はSystem.Xml.Serialization
がCを参照している限り、これがどのような違いがあるのか分かりません。また、Dの[参照の追加]オプションにSystem.Xml.Serialization
が表示されません。どうしてこんなことに?
更新:XmlSerializerがどの参照をロードするのか混乱しているようですが、SilverlightにはSystem.Xml.Serialization.dllアセンブリ内でXmlSerializerが定義されていて、.NET FrameworkにはSystem.Xml.dllに含まれています。私のプロジェクトDはSystem.Xmlへの参照を持ち、CにはSystem.XmlとSystem.Xml.Serializationがあります。 Cが常にSilverlightバージョンのdllを参照するようにするにはどうすればよいですか?
すべてのプロジェクトがSilverlight 5を正しく対象としているかどうかを確認します。参照の1つが間違っている必要があります。最も確実な方法は、3つのプロジェクトファイルをテキストとして開き、そこの参照を比較することですが、Visualから直接行うことができます。 – jv42
私はファイルをチェックし、5.0を指しています。 v5.0 TargetFrameworkVersion> –
stech
System.Xmlへの参照の1つが間違っている必要があります... – jv42