2010-08-08 2 views
13

Я пытаюсь использовать библиотеку отображения динамических данных для WPF в своем решении. Я добавил ссылку на DynamicDataDisplay.dll в моем проекте. Я также добавил пространство имен в .xaml следующим образом: xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"Ссылка на сборку WPF отсутствует - проект все еще строится

Intellisense не помогает мне, когда я пытаюсь добавить элемент из библиотеки динамических данных. Когда я что-то типа, как это в моем .xaml:

<d3:ChartPlotter></d3:ChartPlotter> 

Visual Studio будет отмечать это как ошибку с текстом, как:

The type 'd3:ChartPlotter' was not found. Verify that you are not missing an 
assembly reference and that all referenced assemblies have been built. 

Но странное дело о нем, что он по-прежнему составляет. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?

Вот пример кода, который отлично компилируется, но показывает ошибку в конструкторе:

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <d3:ChartPlotter></d3:ChartPlotter> 
</Grid> 

Edit:

Я попробовал объявление пространства имен, как Merlyn Morgan-Graham но он все еще не работает. Произошла другая ошибка:

Unable to load the metadata for assembly 'DynamicDataDisplay'. 
This assembly may have been downloaded from the web. 
See http://go.microsoft.com/fwlink/?LinkId=179545. The following error was encountered 
during load: etc. 

Кажется, что собранные сборки необходимо разблокировать вручную. Это можно сделать в свойствах файла Windows. После разблокирования и перезагрузки Visual Studio проблема была решена.

http://www.xup.in/pic,13990010/Unblock.PNG

+0

Можете ли вы предоставить часть вашего XAML, которая повторяет проблему? Увидеть, как именно работает ваш код, может помочь кому-то воспроизвести вашу проблему. Также проверьте, является ли класс, на который вы ссылаетесь, общедоступным. –

+0

Я добавил образец кода, надеюсь, что он поможет найти проблему. Он был протестирован с новым проектом WPF, только добавив ссылку на DynamicDataDisplay.dll. –

+5

Разблокировка DLL также работала для меня! Почти необходимо представить это как еще один ответ ... –

ответ

6

Это, как представляется, ссылка схема, не является ссылкой на узел.

Нечто подобное могло бы работать лучше:

xmlns:d3="clr-namespace:Microsoft.Research.DynamicDataDisplay;assembly=DynamicDataDisplay" 

http://msdn.microsoft.com/en-us/library/ms747086.aspx

Редактировать

Я думаю, что я нашел библиотеку, которую вы используете, так что я обновил ссылку пространства имен XAML на то, что я думаю, будет работать на вас. Если нет, проверьте документы или начните редактирование некоторого кода и выясните пространство имен, в котором живет класс ChartPlotter.

2

Дополнительный вопрос для других читателей: если проекты успешно завершены, но вы получаете это сообщение об ошибке при попытке для загрузки вашего представления в конструктор убедитесь, что ваша сборка - x86 или любой CPU, потому что Visual Studio 2010 - это 32-битный процесс и не может загружать сборки x64 в конструкторе.

+0

Переход от x64 к любому CPU разрешил мою локальную проблему сборки (mlns: local = "clr-namespace: "). – vinny

1

Я получил ту же ошибку «Не удалось загрузить метаданные» при обращении к файлу DLL, найденному в бинарной версии Библиотеки динамических данных. Проблема была решена, когда я загрузил исходную версию библиотеки и скомпилировал ее сам. Когда вы ссылались на DLL в DynamicDataDisplay_0.3/sln/DynamicDataDisplay/Debug/bin, он работал отлично.

Я полагаю, что проблема связана с некоторыми разрешениями DLL, как указано уже в конце вопроса - вы можете «разблокировать его», см. Выше.

Смежные вопросы