Невозможно добавить ссылку на сборку DLL в приложении Silverlight 5

Я пытаюсь использовать библиотеку Dynamic Data Display (D3) для отображения графиков в приложении Silverlight 5 (из - браузера). Всякий раз, когда я пытаюсь добавить «DynamicDataDisplay.dll» в качестве ссылки, он снова удаляется после закрытия диалогового окна.

Однако я могу использовать ссылку в обычном проекте Windows Forms или WPF. Так это какое-то ограничение с фреймворком Silverlight?

Что я могу с этим поделать? Может быть, скомпилировать D3 самому по-другому?


person AndiDog    schedule 24.06.2011    source источник
comment
Пробовали ли вы добавить DynamicDataDisplaySilverlight.dll в качестве ссылки, то есть версию библиотеки Silverlight?   -  person dtb    schedule 25.06.2011
comment
@dtb: Где я могу найти этот файл, его нет в бинарном дистрибутиве? (используя самую новую версию)   -  person AndiDog    schedule 25.06.2011
comment
Нажмите на ссылку в вашем вопросе. Найдите слово Silverlight и соответствующую ссылку для скачивания.   -  person dtb    schedule 25.06.2011
comment
@dtb: Хорошо, меня смутила нумерация версий. Попробую эту библиотеку. Но все равно остается вопрос — есть ли какие-то ограничения с обращением к библиотекам из Silverlight?   -  person AndiDog    schedule 25.06.2011


Ответы (3)


Приложения Silverlight могут использовать только сборки, скомпилированные проектами Silverlight. Есть исключения, но для всего, что связано с пользовательским интерфейсом, это всегда верно.

В результате, если вы хотите использовать стороннюю библиотеку в своем приложении Silverlight, у нее должна быть специальная версия Silverlight вместо обычной версии. «Обычную» версию иногда называют версией .NET4 или версией WPF, чтобы противопоставить ее версии Silverlight.

В результате Silverlight для всех практических целей не бинарно совместим с полной CLR. Но существует значительный объем совместимости исходного кода, включая большие разделы базовой структуры и частично несовместимое подмножество WPF.

На самом деле стандартный подход к созданию параллельных сборок WPF и Silverlight заключается в использовании двух проектов, которые связывают все одни и те же исходные файлы с некоторой условной компиляцией.

К счастью для вас, как указал @dtb, Dynamic Data Display уже поддерживает загрузку Silverlight. Но то же самое относится и к любой сторонней библиотеке, которую вы могли бы использовать: она должна иметь разновидность Silverlight.

person Rick Sladkey    schedule 24.06.2011

Если dll D3 зависит от полной установки .Net, а не только от подмножества silverlight, Silverlight не разрешит прямой импорт. Вам нужно будет разместить .dll на своем сервере и предоставить ей асинхронные методы службы. Если это не действительно убойная DLL, она того не стоит...

person therealmitchconnors    schedule 24.06.2011

Вы также можете использовать портативные библиотеки классов, я Silverlight

person Craig Richards    schedule 28.06.2011