我使用Visual Studio 2008,.NET 3.5 SP1,并具有以下模块测试应用程序:
- 一个C ++ DLL
- 使用#1一C ++ / CLI DLL
- 使用#2 C#WPF应用程序
当我尝试使用来自#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设计查找动态库。