6

I have a WPF project defined like this:

MyApp.sln
  MyAppWPF
  MyApp.Domain

In one of my xaml files in the MyAppWPF project I'm trying to reference a class defined in MyApp.Domain project. I have a project reference in MyAppWPF to MyApp.Domain. I am trying to create the reference like this:

<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>

I get an error saying the assembly cannot be found, however I can create an instance of the class I want to reference in the code behind, so I know I've got it referenced correctly.

How do I do this? Do I need a strong name, or reference the dll directly instead of using a project reference?

4

5 回答 5

3

;assembly=如果它对任何人有帮助,我可以通过简单地在命名空间声明的末尾添加引用包含项目本身的内容来解决我的问题。例如:

xmlns:local="clr-namespace:YourProjectNameSpace;assembly=" 
于 2015-08-12T16:39:41.840 回答
2

Check if

  1. the fully qualified name for MyClass is MyApp.Domain.MyClass
  2. MyClass has a default public constructor (with no parameters) so that XAML can instantiate it.
于 2008-10-19T18:13:20.503 回答
1

能有什么帮助吗?

Visual Studio 2008 (RTM) WPF 设计器无法加载程序集或依赖项

我假设您使用的是 Visual Studio 2008。如果您使用的是 Visual Studio 2005,这是代号为“Cider”的 XAML 设计器中的一个已知问题,它包含在“Visual Studio 2005 Extensions for WPF and WCF”中。

于 2008-10-20T12:31:44.890 回答
1

assembly=MyApp.Domain如果您正在动态编译松散的 XAML,您只需要输入。

如果您最初只是构建一次 XAML,请排除该令牌并直接说xmlns:local="clr-namespace:MyApp.Domain"

于 2015-02-26T23:10:52.520 回答
0

如果 XAML 不是松散的(在程序集 (DLL/EXE) 中编译,
请确保该程序集具有对您正在查找的程序集的引用
(右键单击项目 --> 添加引用...)。

如果 XAML是松散的,请确保它正在寻找的程序集被复制到运行 exe 的同一目录中。

于 2009-02-07T13:46:44.463 回答