Отсутствует ссылка на сборку 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, как указано в конце вопроса - вы можете "разблокировать ее", см. выше.