12

尝试使用 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”。请确保引用了包含此类型的程序集。如果此类型是您的开发项目的一部分,请确保已使用当前平台或任何 CPU 的设置成功构建项目。

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

4

1 回答 1

1

我记得前段时间我有这个“找不到类型 System.Drawing.Size”,而且我花了太多时间来修复它。我真的不记得最终修复它的是什么,我认为选择根本不是Any CPU问题。尽管它与您的上下文不同,但我仍然认为值得尝试以下操作,因为这可能是与System.Drawing.dll在您的解决方案中引用多个项目的不同版本有关的问题。

因此,请尝试仔细检查所用版本中不一致的解决方案(即使 packages.config 条目看起来没问题),并确保它们都引用相同的版本(例如 .net461)。

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

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

我确实记得,在我尝试解决问题的过程中,我还将 .Net 升级到了 4.6.1 ......也许你也可以试试这个......但无论如何为你自己的库运行目标框架迁移器(并重新启动 VS 2015 在路上)绝对值得一试。

祝你好运!

于 2016-05-22T22:16:10.333 回答