无法在 XAML 中创建对其他项目的 xmlns 引用
Posted
技术标签:
【中文标题】无法在 XAML 中创建对其他项目的 xmlns 引用【英文标题】:Can't create xmlns reference to other project in XAML 【发布时间】:2010-09-18 00:30:28 【问题描述】:我有一个这样定义的 WPF 项目:
我的应用程序.sln MyAppWPF 我的应用程序域在 MyAppWPF 项目中的一个 xaml 文件中,我试图引用在 MyApp.Domain 项目中定义的类。我在 MyAppWPF 中有一个对 MyApp.Domain 的项目参考。我正在尝试创建这样的参考:
我收到一条错误消息,提示找不到程序集,但是我可以在后面的代码中创建我想引用的类的实例,所以我知道我已经正确引用了它。
我该怎么做?我需要一个强名称,还是直接引用 dll 而不是使用项目引用?
【问题讨论】:
嗨 Ted - 你解决过这个问题吗? 不,但自从我提出这个问题以来,我并没有真正看过它。它只是一个学习 WPF 的应用程序。 【参考方案1】:如果它对任何人有帮助,我只需在引用包含项目本身的命名空间声明末尾添加 ;assembly=
即可解决我的问题。例如:
xmlns:local="clr-namespace:YourProjectNameSpace;assembly="
【讨论】:
【参考方案2】:检查是否
-
MyClass 的完全限定名称是 MyApp.Domain.MyClass
MyClass 有一个默认的公共构造函数(没有参数),因此 XAML 可以对其进行实例化。
【讨论】:
【参考方案3】:有什么帮助吗?Visual Studio 2008 (RTM) WPF Designer Could Not Load Assembly or Dependency
我假设您使用的是 Visual Studio 2008。如果您使用的是 Visual Studio 2005,这是代号为“Cider”的 XAML 设计器中的一个已知问题,该问题包含在“Visual Studio 2005 Extensions for WPF and WCF”中”。
【讨论】:
【参考方案4】:如果您要动态编译松散的 XAML,则只需输入 assembly=MyApp.Domain
。
如果您最初只是构建一次 XAML,请排除该令牌并改为使用 xmlns:local="clr-namespace:MyApp.Domain"
。
【讨论】:
【参考方案5】:如果 XAML 不是松散的(在程序集中编译 (DLL/EXE) 确保该程序集引用了您要查找的程序集 (右键单击项目 --> 添加引用 ...)。 如果 XAML 松散,请确保将它要查找的程序集复制到运行 exe 的同一目录中。
【讨论】:
以上是关于无法在 XAML 中创建对其他项目的 xmlns 引用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ActiveRecords 中创建对 Ruby 中对象的引用?
如何在 XAML 代码中创建支持其中其他元素的 UserControl