SerializationStore не находит ссылки

При попытке десериализации с помощью 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'. Убедитесь, что сборка, содержащая этот тип. Если этот тип часть вашего проекта разработки, убедитесь, что проект был успешно создан с использованием настроек для вашей текущей платформы или любого ЦП.

Здесь я прошел через элемент управления Button и задал свойство size.

Ответ 1

Я помню, что у меня было это "не удалось найти тип System.Drawing.Size" некоторое время назад, и я потратил слишком много времени на его исправление. Я действительно не помню, что это было, наконец, исправлено, и я не думаю, что выбор Any CPU - проблема вообще. Хотя это был не тот самый контекст, что и у вас, я все еще думаю, что стоит попробовать следующее, поскольку это может быть проблема, связанная с ссылкой на различные версии System.Drawing.dll из нескольких проектов внутри вашего решения.

Таким образом, попробуйте дважды проверить решение на несоответствия в используемых версиях (даже если записи пакетов .config выглядят нормально) и убедитесь, что все они ссылаются на одну и ту же версию (например,.net461).

В моем случае некоторые из 30 + библиотек в решении оказались в использовании .net45; Я использовал инструмент под названием Target Framework Migrator, чтобы исправить это. Вы можете получить его через Tools = > расширения и обновления = > Online = > Галерея Visual Studio

а затем введите Target Migrator в поле поиска.

Я помню, что я также обновил .Net до 4.6.1 во время моих попыток исправить проблему... возможно, вы тоже могли бы попробовать это... но в любом случае запустить Target Migrator для собственных библиотек ( и перезапуск VS 2015 по пути), безусловно, стоит попробовать.

Удачи!