2014-09-27 89 views
1

为什么会出现此错误?System.Runtime.Serialization使用ReflectionOnly API时,相关程序集必须预加载或加载

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 
+1

你好!看看[这](http://stackoverflow.com/help/how-to-ask) – 2014-09-27 12:25:36

回答

2

它说的很多。

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

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

请参阅如何加载的DLL Loading DLLs at runtime in C#

+0

thnak你了:) – Gamze 2014-09-27 22:10:32

3

此错误意味着你正在使用为您的项目库中的一个取决于自身在.NET Framework的System.Runtime.Serialization装配这个问题。

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

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