在XAML中找不到程序集引用,但在xaml.cs类中引用时代码编译

时间:2012-10-14 18:47:57

标签: c# .net wpf xaml mdi

添加dll引用时出现了一个奇怪的问题。我有一个WPF应用程序,我正在尝试使用WPF MDI库:http://wpfmdi.codeplex.com/

如说明书中所述(非常模糊),我右键点击VS2012中的引用,点击Add reference..,点击Browse..并添加我下载的dll。

接下来,我在窗口的XAML中添加了以下行:xmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI",如说明中所述。

但是,在尝试在XAML中添加<mdi:MdiContainer>时,会显示以下错误消息:

The type 'mdi:MdiContainer' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

The name "MdiContainer" does not exist in the namespace "clr-namespace:WPF.MDI;assembly=WPF.MDI".

这是我的XAML:

<Window x:Class="QueryBuilder.Table"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI"
        Height="300" Width="300" WindowStyle="ToolWindow" ResizeMode="NoResize" ShowInTaskbar="False">
</Window>

这个问题让我整天感到沮丧。我已经尝试了几乎所有可以想到的东西。值得注意的是,我已经从库的站点下载了示例应用程序,我可以毫无问题地运行它。除此之外,我已经将它添加到我的项目的xaml.cs类中:WPF.MDI.MdiContainer d = new WPF.MDI.MdiContainer();并且它完全没有任何问题。

请注意,我的第一个问题是here,但没有一项建议有效。然而,问题现在已经改变,因为上面的段落似乎表明代码在后面的代码中成功编译,但不在XAML文件中。

编辑:我还想补充一点,我可以浏览大会参考的代码,如下所示。

enter image description here

3 个答案:

答案 0 :(得分:9)

我自己终于解决了这个问题 - 在这里留下这个答案,因为有些人在某个时候遇到同样的问题。将解决方案本身添加到程序集的引用路径可以解决问题!遗憾的是,这没有记录......

编辑:为了澄清,我所做的是添加解决方案,而不是dll。换句话说,我添加了MDI解决方案及其所有类。这自然适用于源代码可用的DLL。

答案 1 :(得分:7)

如果Visual Studio在尝试所有内容后仍会继续抱怨和下划线,只需使用任务管理器终止XDesProc.exe进程,然后重建解决方案。 Visual Studio中的WPF和XAML支持是可怕的一块糟糕的东西。

答案 2 :(得分:1)

http://wpfmdi.codeplex.com/获得sln文件。构建该项目并使用bin中的新.dll,使用它,然后它对我来说很好。