XAML-名称空间中不存在名称,即使我可以在文件夹结构

时间:2016-05-26 10:59:12

标签: c# wpf xaml dll build-error

我有一个WPF应用程序,我试图添加从应用程序内部显示PDF文件的功能。我正在尝试使用MoonPDF(https://sourceforge.net/projects/moonpdf/)来执行此操作,并且我有以下XAML标记:

<Window x:Class="DocumentViewer.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:DocumentViewer"
    xmlns:mpp="MoonPdfLib;assembly=MoonPdfLib"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
  <DockPanel>
    <mpp:MoonPdfPanel x:Name="moonPdfPanel" Background="LightGray" ViewType="SinglePage" PageDisplay="ContinuousPages" PageMargin="0,2,4,2" AllowDrop="True"/>


    <Grid DockPanel.Dock="Top">
        <Menu x:Name="menu" IsMainMenu="True" HorizontalAlignment="Left" Height="20" VerticalAlignment="Top" Width="518">
            <MenuItem Header="_File">
                <MenuItem x:Name="loadDocument" Header="Load Document" Click="openFileMenuItem_click"></MenuItem>
                <Separator />
                <MenuItem x:Name="exit" Header="Exit" Click="exitApplication_click"></MenuItem>
            </MenuItem>
        </Menu>
    </Grid>
    <Grid x:Name="browserHost" DockPanel.Dock="Top"   Margin="0,0,0,0">
    </Grid>


  </DockPanel>

</Window>

我目前在Visual Studio 2015中遇到编译错误:

        <mpp:MoonPdfPanel x:Name="moonPdfPanel" Background="LightGray" ViewType="SinglePage" PageDisplay="ContinuousPages" PageMargin="0,2,4,2" AllowDrop="True"/>

错误只是突出显示该行的第一部分:<mpp:MoonPdfPanel,并说:

  

命名空间“MoonPdfPanel”在命名空间“MoonPdfLib; assembly = MoonPdfLib”中不存在。

但是,如果我浏览到DocumentViewer文件夹,这是Windows资源管理器中此应用程序的工作区路径,我可以看到该位置确实存在Windows标记文件MoonPdfPanel

  

的DocumentViewer / moonpdf / SRC / MoonPdfLib

MoonPdfLib是我用mpp命名的命名空间:

<xmlns:mpp="MoonPdfLib;assembly-MoonPdfLib"

名称MoonPdfPanel确实存在于名称空间MoonPdfLib;assembly=MoonPdfLib ...?

如果我尝试运行我的代码,我在控制台中会遇到三个错误:第一个是上面提到的错误,第二个是:

  

未找到type'mpp:MoonPdfPanel'。验证您是否缺少程序集引用,并且已构建所有引用的程序集。

,第三是:

  

标签'MoonPdfPanel'在XML命名空间'MoonPdfLib; assembly = MoonPdfLib'中不存在。第11行第10位。

正如我所提到的,我已经下载了MoonPDF的源代码 - 我已经尝试构建它,但是当我这样做时,我在控制台中显示了两个错误,两者都说:

  

命令“xcopy C:... \ libmupdf.dll C:... \ MoonPdfLib \ bin \ Debug \ / Y”退出,代码为4

我尝试使用MoonPDF的原因是我在自己的应用程序中遇到错误的原因是因为我自己还没能构建MoonPDF吗?如果是这样,我将如何解决该错误,以便我可以构建MoonPDF,然后在我自己的应用程序中使用它?

1 个答案:

答案 0 :(得分:0)

尝试使用clr-namespace引用命名空间(假设您已经添加了.NET项目引用):

xmlns:mpp="clr-namespace:MoonPdfLib;assembly=MoonPdfLib"

请参阅XAML Namespaces and Namespace Mapping for WPF XAML