我有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,文化=中性 公鑰= 7cec85d7bea7798e' 或它的一個依賴。 系統找不到指定的文件。文件名:「的System.Xml, 版本= 5.0.5.0,文化=中性公鑰= 7cec85d7bea7798e」}
更新:我做了一些更多的分析,發現調用CallSer()實際上是從另一個.NET類庫D.所以調用堆棧顯示是D - > C - > CallSer()。我不確定這可以造成什麼區別,只要我有System.Xml.Serialization
引用C.另外,我沒有看到System.Xml.Serialization
列在添加引用選項爲D?爲什麼?
更新:看起來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.其中一個引用必須是錯誤的。最可靠的檢查方法是以文本形式打開三個項目文件並比較其中的引用,但是您應該可以直接從Visual中進行。 – jv42 2012-04-16 09:11:09
我檢查了這些文件,它們指向5.0。 v5.0 TargetFrameworkVersion> –
stech
2012-04-16 10:44:12
然後其中一個對System.Xml的引用必須是錯誤的... – jv42 2012-04-16 13:49:44