2012-10-14 135 views
2

我有一个奇怪的问题,添加一个dll参考。我有一个WPF应用程序,我试图使用WPF MDI库:http://wpfmdi.codeplex.com/添加DLL参考

正如在说明中规定(这是很模糊),我右键点击在VS2012的引用,点击Add reference..,点击Browse..并添加了我下载的dll。

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

但是,尝试添加一个<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:Name="..." x:Class="MyClass.MyClass" 
     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" 
     Title="" WindowState="Maximized"> 
    <Window.Resources> 
     <Style TargetType="TreeView"> 
      <Setter Property="Padding" Value="0,0,20,0"/> 
      <Setter Property="BorderBrush" Value="Gray"/> 
      <Setter Property="BorderThickness" Value="0,0,5,0"/> 
     </Style> 
    </Window.Resources> 
    <mdi:MdiContainer></mdi:MdiContainer> 
</Window> 
+0

您是否设置了复制本地的引用?很确定你需要为命名空间来解决。 – iivel

+1

检查DLL引用,复制到本地应该是true。在添加XAML文件中的任何参考之前,尝试构建一次项目。 – jags

+0

是的,它设置为true –

回答

3

项目MDI Project似乎使用.Net 4客户端配置文件。只要确保WPF.MDI项目已经使用.Net Framework 4运行时进行编译。

+0

我想知道如果我做错了什么 - 我是否也必须添加该项目?我已经添加的所有DLL –

+0

我已经将项目添加到解决方案,问题仍然存在 –

+0

只需进行简单测试,创建一个新的控制台应用程序项目,添加对WPF.MDI DLL的引用并访问MdiContainer键入Main方法。如果代码编译,那么WPF应用程序代码也应该编译。只要确保控制台应用程序项目使用与WPF.MDI DLL相同的运行时版本即可。您可以使用ILDASM命令检查WPF.MDI DLL的CLR版本。 – jags

1

检查.NET框架设置。确保它未设置为.NET Framework Client Profile。因为根据我的经验,这个错误通常在框架设置不匹配时出现。希望这可以帮助!

+0

我在哪里可以找到这些设置? –

+0

右键单击您的项目并选择属性。在应用程序选项卡上,您可以找到目标框架,验证该设置。 –

+0

它目前设置为.NET Framework 4.5 –

0

MDI Project下载DLL的源代码。重新编译为当前的.net版本,然后重新添加为参考并重新编译您的项目。