【问题标题】:System.Xml.Linq, Portable Libraries and SilverlightSystem.Xml.Linq、便携式库和 Silverlight
【发布时间】:2013-01-31 22:40:44
【问题描述】:

我构建了一个引用 System.Xml.Linq 的可移植类库(profile47,其中包括 Silverlight 5)。我可以从我的 Silverlight 5 应用程序中引用该可移植库,并且可以在 C:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Libraries\Client 中引用 System.Xml.Linq 的 Silverlight 版本。问题是 System.Xml.Linq dll 的版本号 (5.0.5.0) 与可移植库引用的版本号不同,当我运行 Silverlight 应用程序时,它会引发异常:

Could not load file or assembly 'System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.

由于 app.config 中没有像完整的 .NET 框架中那样的程序集重定向机制,有什么办法可以使这项工作发挥作用吗?

【问题讨论】:

  • 我认为您应该删除旧参考并为 System.link Version=5.0.5.0 添加新参考
  • 可移植库版本上不能引用Silverlight 5.0.5.0版本,只能引用4.0.0.0版本

标签: xml silverlight silverlight-4.0 silverlight-5.0 portable-class-library


【解决方案1】:

从可移植类库中删除 System.Xml.Linq 引用。如果您的个人资料中有 .net 框架 4.0.3,那么 .Net 可移植子集就足够了。

【讨论】:

  • 我无法删除引用,因为我在可移植库中使用 xml.linq
  • 是的,即使您使用 Xml.Linq,您也可以将其删除。如果您收到编译错误,那是因为您的配置文件不允许这样做。
  • 配置文件允许它,但我确实得到了编译时错误。我在 Widows 8 和 Windows Phone 应用程序上重用相同的可移植库,仅来自 silverlight 抱怨关于 system.xml.linq 程序集的不同版本的参考
  • 您能否从您的 PCL 中删除对 System.Xml.Linq 的引用并告诉我您遇到了什么编译错误?
  • 我仔细检查了一遍,问题是我引用了另一个同样引用 System.Xml.Linq 的 PCL,在我从所有这些 PCL 中删除它之后,我不再有编译时错误,并且如果我仅在 Silverlight 程序集中引用 System.Xml.Linq,它现在可以在运行时工作。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多