SerializationStore没有找到引用

时间:2016-03-03 08:20:09

标签: c# codedom system.componentmodel

尝试使用ComponentSerializationService反序列化时,会填充错误,找不到引用:

public ICollection Deserialize(object serializationData)
{
    var serializationStore = serializationData as SerializationStore;
    var componentSerializationService = _serviceProvider.GetService(typeof(ComponentSerializationService)) as ComponentSerializationService;
    var collection = componentSerializationService.Deserialize(serializationStore);
}

错误如:

  

找不到类型' System.Drawing.Size'。请确保   引用包含此类型的程序集。如果这种类型是   作为开发项目的一部分,确保项目已经完成   使用当前平台或Any的设置成功构建   CPU。

在这里,我通过了Button控件并设置了size属性。

1 个答案:

答案 0 :(得分:1)

我记得我曾经有过“找不到类型System.Drawing.Size”一段时间了,我花了太多时间来修复它。我真的不记得最终修复它的是什么,我认为选择Any CPU根本不是问题。虽然它与您的上下文不完全相同,但我仍然认为值得尝试以下内容,因为它可能是一个问题,与您解决方案中的几个项目引用System.Drawing.dll的不同版本有关。

因此,请尝试对所使用版本中的不一致性进行双重检查(即使packages.config条目看起来没问题),并确保它们都引用相同的版本(例如.net461)。

就我而言,解决方案中的30多个库中的一些原来是使用.net45;我使用了一个名为Target Framework Migrator的工具来解决这个问题。你可以通过Tools =>获得它。扩展和更新=>在线=> Visual Studio Gallery

然后在“搜索字段”中键入Target Framework Migrator。

我确实记得,我在尝试修复问题时也将.Net升级到4.6.1 ...也许你也可以试试这个......但无论如何都要为你自己的库运行Target Framework Migrator(并且重新启动VS 2015就绝对值得一试。

祝你好运!