System.Runtime.Serialization使用ReflectionOnly API时,必须预先加载或加载相关的程序集

时间:2014-09-27 12:21:45

标签: c# servicestack

为什么会出现此错误?

 Error  12  Unknown build error, 
'Cannot resolve dependency to assembly 'System.Runtime.Serialization, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' 
because it has not been preloaded. When using the ReflectionOnly APIs, 
dependent assemblies must be pre-loaded or loaded on demand through the    
ReflectionOnlyAssemblyResolve event.'   WpfApp

2 个答案:

答案 0 :(得分:4)

此错误表示您为项目使用的库之一取决于.Net框架的System.Runtime.Serialization程序集。

当您尝试构建项目时,它会解析尝试加载库程序集的XAML部分(使用反射),但尚未加载.Net依赖项(请参阅this answer )。

解决此问题的最简单方法是将System.Runtime.Serialization程序集直接添加到您的wpf项目引用中。

答案 1 :(得分:2)

几乎就是这么说的。

看起来你正在尝试反序列化一个对象,但是尚未加载该对象的一个​​依赖对象依赖的DLL。

我在asp.net应用程序中使用依赖注入有一个类似的问题,解决方案是显式加载我的bin目录中的所有DLL。在我的例子中,我使用System.IO类来获取目录中的文件列表,然后显式加载每个DLL。

有关如何加载DLL Loading DLLs at runtime in C#

的信息,请参阅此问题