我有一个像这样定义的WPF项目:
MyApp.sln
MyAppWPF
MyApp.Domain
在我的MyAppWPF项目中的一个xaml文件中,我正在尝试引用MyApp.Domain项目中定义的类 . 我在MyAppWPF中有一个 project reference 到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 回答
如果您正在动态编译松散的XAML,则只需要放置
assembly=MyApp.Domain
.如果您最初只是构建一次XAML,请排除该令牌,只需说出
xmlns:local="clr-namespace:MyApp.Domain"
.可以有任何帮助吗?
Visual Studio 2008 (RTM) WPF Designer Could Not Load Assembly or Dependency
我假设您使用的是Visual Studio 2008.如果您使用的是Visual Studio 2005,这是代号为“Cider”的XAML设计器中的已知问题,该问题包含在“WPF和WCF的Visual Studio 2005扩展”中 .
检查是否
MyClass的完全限定名称是MyApp.Domain.MyClass
MyClass有一个默认的公共构造函数(没有参数),因此XAML可以实例化它 .
如果它对任何人有帮助,我只需在引用包含项目本身的命名空间声明的末尾添加
;assembly=
就可以解决我的问题 . 例如:如果XAML没有松动(在程序集中编译(DLL / EXE))
确保程序集具有对您要查找的程序集的引用
(右键单击项目 - >添加引用...) .
如果XAML松散,请确保将要查找的程序集复制到运行exe的同一目录中 .