Подтвердить что ты не робот

Ссылка на сборку не найдена в XAML, но код компилируется при ссылке в классе xaml.cs

У меня странная проблема с добавлением ссылки dll. У меня есть приложение WPF и я пытаюсь использовать библиотеку MDI WPF: http://wpfmdi.codeplex.com/

Как указано в инструкциях (которые очень расплывчаты), я щелкнул правой кнопкой мыши по ссылкам в VS2012, нажал на Add reference.., нажал на Browse.. и добавил свою DLL, которую я загрузил.

Затем я добавил следующую строку в XAML моего окна: xmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI", как указано в инструкциях.

Однако при попытке добавить <mdi:MdiContainer> в XAML отображаются следующие сообщения об ошибках:

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

The name "MdiContainer" does not exist in the namespace "clr-namespace:WPF.MDI;assembly=WPF.MDI".

Это мой XAML:

<Window x:Class="QueryBuilder.Table"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI"
        Height="300" Width="300" WindowStyle="ToolWindow" ResizeMode="NoResize" ShowInTaskbar="False">
</Window>

Эта проблема расстраивала меня весь день. Я пробовал почти все, что только можно себе представить. Стоит заметить, что я удалил образец приложения с сайта библиотеки, и я могу запустить его без проблем. Кроме того, я добавил это в класс xaml.cs моего проекта: WPF.MDI.MdiContainer d = new WPF.MDI.MdiContainer(); и он компилируется без каких-либо проблем.

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

EDIT: Я также хотел бы добавить, что я могу просмотреть код ссылки на сборку, как показано ниже.

enter image description here

4b9b3361

Ответ 1

Я, наконец, решил проблему самостоятельно - оставим этот ответ здесь, если у кого-то есть такая же проблема. Добавление самого решения к эталонному пути сборки решает проблему! Это позор, это не документировано...

РЕДАКТИРОВАТЬ: Чтобы уточнить, что я сделал, это добавить решение, а не dll. Другими словами, я добавил решение MDI со всеми его классами. Это естественно относится к DLL, где исходный код также доступен.

Ответ 2

Если Visual Studio будет продолжать жаловаться и подчеркивать даже после того, как вы все пробовали, просто прекратите процесс XDesProc.exe с помощью диспетчера задач и затем переустановите решение. Поддержка WPF и XAML в Visual Studio - ужасный недоуменный кусок дерьма.

Ответ 3

Получил sln файл из http://wpfmdi.codeplex.com/. Создал этот проект и использовал новую .dll из bin, использовал его, тогда он отлично работал у меня.