【问题标题】:Adding dll reference添加dll引用
【发布时间】:2012-10-04 18:21:29
【问题描述】:

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

如说明中所述(非常模糊),我右键单击 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>

【问题讨论】:

  • 您是否将引用设置为复制本地?很确定您需要解析命名空间。
  • 检查 DLL 引用,复制到本地应该是真的。并在 XAML 文件中添加任何引用之前尝试构建项目一次。
  • 也试过了,还是不行:/
  • 我已编辑问题以显示我收到的错误消息
  • 只是好奇,您能否在代码隐藏文件中看到 WPF.MDI 命名空间并使用它。我的意思是尝试在后面的代码中从 WPF.MDI 命名空间访问类型一次,而不是在 XAML 中尝试,看看命名空间和类型是否可见并且项目是否被编译?

标签: c# .net wpf dll assemblies


【解决方案1】:

MDI Project 的项目似乎使用 .Net 4 Client Profile。只需确保已使用 .Net Framework 4 运行时编译 WPF.MDI 项目即可。

【讨论】:

  • 我想知道我是否做错了什么 - 我是否也必须添加项目?我添加的只是 dll
  • 我已将项目添加到解决方案中,但问题仍然存在
  • 只是为了一个简单的测试,新建一个Console Application项目,添加对WPF.MDI DLL的引用并在Main方法中访问MdiContainer类型。如果代码编译,那么 WPF 应用程序代码也应该编译。只需确保控制台应用程序项目使用与 WPF.MDI DLL 相同的运行时版本即可。您可以使用 ILDASM 命令检查 WPF.MDI DLL 的 CLR 版本。
  • 我尝试过类似的方法 - 我进入 xaml.cs 类并创建了一个 WPF.MDI.MdiContainer 对象。这行得通,但是我似乎仍然无法在 XAML 中创建一个
  • 感谢您的帮助,但我仍然不走运。我将尝试根据新的细节提出一个新问题,因为自从代码在 cs 文件中编译后,情况已经发生了根本性的变化。
【解决方案2】:

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

【讨论】:

  • 在哪里可以找到这些设置?
  • 右键单击您的项目并选择属性。在 Application 选项卡上,您可以找到 Target 框架,验证该设置。
  • 好的,现在做一件事,从这个链接wpfmdi.codeplex.com/downloads/get/184338 获取 WPF MDI 的源代码,并通过将其框架设置为 4.5 来将此项目包含在您的解决方案中,看看它是否适合您。
  • 尝试降级项目的框架,看看它是否工作。
  • 我想知道我是否做错了什么 - 我是否也必须添加项目?我添加的只是 dll
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多