Я использую Visual Studio 2008, .NET 3.5 SP1 и имею тестовое приложение со следующими модулями:
Когда я пытаюсь использовать классы из # 2 в качестве ресурсов в WPF XAML, дизайнер не разрешает мне:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:lib1="clr-namespace:ClassLibrary1;assembly=ClassLibrary1" <- ERROR
Ошибка: «Сборка 'ClassLibrary1' не найдена. Убедитесь, что вы не пропустили ссылку на сборку. Также убедитесь, что ваш проект и все сборки, на которые есть ссылки, были построены».
Но когда я использую класс из C ++ / CLI DLL в коде главного окна приложения, все работает нормально. Создается Class1, и в своем конструкторе он вызывает C ++ DLL, нет проблем.
using ClassLibrary1;
...
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
//use in code-behind
Class1 tmp = new Class1();
tmp.FirstName = "foo";
Title = tmp.FirstName;
}
}
Если я изменю сборку C ++ / CLI, удалите его вызов в C ++ DLL и перестройте все, дизайнер перестает жаловаться и загружает сборку C ++ / CLI без жалоб.
Я подозреваю, что эта проблема как-то связана с тем, где дизайнер WPF ищет динамические библиотеки.