Sketchables в WPF с.NET 4, не может загрузить System.Core версии =2.0.5.0

Новичок Sketchflow (пара дней), новичок WPF (несколько недель).

Детали рабочего пространства:

WinXP, Visual Studio 2010 Ultimate, Expression Studio Ultimate (используется Expression Blend 4 с SketchFlow). Загрузил выпуск Sketchables 0.9 и собрал выпускную версию (отладочная версия уже создана).

Детали вопроса:

Запустите Expression Blend 4, создайте проект WPF Sketchflow. Постройте это (успешно). Добавьте ссылки на версию выпуска или отладочную версию библиотеки Sketchables (на рабочем столе, а не в папке SL) и попробуйте выполнить сборку заново. Сборка завершается с ошибкой:

Unknown build error, 'Could not load file or assembly 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXX' or ore of its dependencies. The local assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'

Теперь я видел некоторые проблемы с похожей ошибкой, в частности пару проблем, когда проблема была вызвана попыткой загрузить элемент управления Silverlight в проект WPF. Тем не менее, я не достаточно осведомлен, чтобы знать, связано ли это. Надеюсь, я попробовал проект Silverlight. Конечно же, создание проекта Silverlight Sketchflow и добавление библиотек Sketchables выполняется аккуратно.

Итак, вопрос в следующем: есть ли у кого-нибудь идеи о том, что на самом деле вызывает эту ошибку в источнике Sketchables, о том, как ее отследить, чтобы я мог поработать над ней и получить чистую библиотечную сборку для WPF?

2 ответа

Решение

Вы определили причину проблемы, сборка, на которую вы пытаетесь ссылаться в своем проекте WPF, была скомпилирована для Silverlight (номер версии 2.0.5.0 - это дешевая распродажа, это Siverlight).

Возможно, вы захотите узнать у автора элементов управления, есть ли способ скомпилировать его для WPF.

Чак прав. Dll Sketchables.Common - это библиотека классов Silverlight. Простой способ исправить это создать проект Sketchables.Common.WPF и сделать его обычной библиотекой классов. Скопируйте классы из проекта библиотеки SL, скомпилируйте и измените ссылку в Sketchables.WPF, указав Sketchables.Common.WPF вместо Sketchables.Common. Ваш проект Blend теперь должен быть собран.

Более продвинутым способом является совместное использование обоих общих проектов в одних и тех же файлах, но я не буду вдаваться в подробности. Ищите файлы для обмена (ссылки) между проектами, и вы найдете ответы на эти вопросы.

Другие вопросы по тегам