我有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