Не удается создать ссылку на xmlns другого проекта в XAML - PullRequest
5 голосов
/ 19 октября 2008

У меня есть проект WPF, определенный следующим образом:

MyApp.sln
  MyAppWPF
  MyApp.Domain

В одном из моих файлов xaml в проекте MyAppWPF я пытаюсь сослаться на класс, определенный в проекте MyApp.Domain. У меня есть ссылка проекта в MyAppWPF на MyApp.Domain. Я пытаюсь создать ссылку так:

<Window x:Class="MyAppWPF.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:MyApp.Domain;assembly=MyApp.Domain"
    Title="Window1" Height="305" Width="485">
    <Window.Resources>
       <local:MyClass x:Key="mine" />
    </Window.Resources>
</Window>

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

Как мне это сделать? Нужно ли строгое имя или ссылка на dll напрямую вместо использования ссылки на проект?

Ответы [ 5 ]

2 голосов
/ 19 октября 2008

Проверьте, если

  1. Полное имя MyClass - MyApp.Domain.MyClass
  2. MyClass имеет открытый конструктор по умолчанию (без параметров), так что XAML может его создать.
1 голос
/ 12 августа 2015

Если это кому-нибудь поможет, я смог решить свои проблемы, просто добавив ;assembly= в конце объявления пространства имен, которое ссылалось на сам содержащий проект. Например:

xmlns:local="clr-namespace:YourProjectNameSpace;assembly=" 
1 голос
/ 27 февраля 2015

Вам нужно поставить assembly=MyApp.Domain, только если вы динамически компилируете свободный XAML.

Если вы сначала просто строите свой XAML, исключите этот токен и просто скажите xmlns:local="clr-namespace:MyApp.Domain".

1 голос
/ 20 октября 2008

Может быть что-нибудь поможет?

Конструктор WPF Visual Studio 2008 (окончательная первоначальная версия) не может загрузить сборку или зависимость

Я предполагаю, что вы используете Visual Studio 2008. Если вы используете Visual Studio 2005, это известная проблема в конструкторе XAML с кодовым названием «Cider», который включен в «Расширения Visual Studio 2005 для WPF и WCF». ».

0 голосов
/ 07 февраля 2009

Если XAML не потерян (скомпилирован в сборке (DLL / EXE)
убедитесь, что в сборке есть ссылка на искомую сборку
(щелкните правой кнопкой мыши по проекту -> добавить ссылку ...).

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

...