Отсутствует ссылка на сборку WPF - проект по-прежнему строится

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

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:

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

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

Ответы

Ответ 1

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

Что-то вроде этого может работать лучше:

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

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

Edit

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

Ответ 2

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

Ответ 3

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

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