名称ChromiumWebBrowser在名称空间“clr-namespace:CefSharp.Wpf; assembly = CefSharp.Wpf”中不存在

时间:2016-09-21 09:21:26

标签: c# wpf xaml namespaces cefsharp

我已按照此link来实施CefSharp应用程序。

但我在编码MainWindow.xaml时遇到困难。

Blend for VS 2015说,

  

名称ChromiumWebBrowser在名称空间“clr-namespace:CefSharp.Wpf; assembly = CefSharp.Wpf”中不存在

但我在NuGet Package Manager中安装了CefSharp.Common和CefSharp.Wpf v51.0.0,cef.redist.x64和cef.redist.x86 v3.2704.1432。

我是开发C#的新手,所以我不知道如何解决这个问题。请帮我解决这个错误。

这是我的MainWindow.xaml

<Window x:Class="StocktalkBrowser.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:StocktalkBrowser"
        xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <cefSharp:ChromiumWebBrowser Grid.Row="0"  Address="https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions" />
    </Grid>
</Window>

5 个答案:

答案 0 :(得分:3)

我刚试过这个链接,就像我在评论中提到的那样编译它没有任何问题。

It is shown as error,  but you can ignore it 可以忽略。

No Preview available 并且预览也不可用,我学会了使用它。

Compiles 编译时没有错误

Program starts 程序启动了。没问题

答案 1 :(得分:1)

对我来说问题是解决方案平台设置为AnyCPU 据我所知,CefSharp不支持AnyCPU。有趣的是,解决方案在发布模式下运行良好,但在调试模式下,我立即收到错误 - the invocation of the constructor on type that matches ... the specified binding constraints threw an exception.

只要我将解决方案平台更改为仅x64,那么XAML错误就会消失(The name ChromiumWebBrowser does not exist in the namespace “clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf”)。我可以在调试和发布模式下运行解决方案。

答案 2 :(得分:0)

在XAML desginer中不支持,因此在运行时加载它:

  1. 从XAMl中删除元素,而是放置任何容器,例如Border:

    <Border x:Name="cefChromeContainer" />
    
  2. 在构造函数代码中,在InitializeComponent();调用之后,将浏览器元素置于容器中并放入容器中。甚至更好地在类scoop中声明浏览器:

    CefSharp.Wpf.ChromiumWebBrowser browser = new CefSharp.Wpf.ChromiumWebBrowser();
    
    public MainWindow()
    {
        InitializeComponent();
        cefChromeContainer.Content = browser;
        browser.Address = "https://stackoverflow.com";
    }
    

答案 3 :(得分:0)

我遇到了同样的问题,我解决了将配置从“ 调试”更改为“ 版本”并使用“ x64 ”的问题平台。

但是像我通常所做的那样,不足以从解决方案菜单中更改它。您需要转到“ 编译>配置管理”下的Visual Studio主菜单,如从 Microsoft 的以下链接中所见:

https://docs.microsoft.com/es-es/visualstudio/ide/how-to-configure-projects-to-target-platforms?view=vs-2015&redirectedfrom=MSDN#Anchor_0

此解决方案实际上位于cefsharp的Readme.txt文件中,如 saschad 在他的答案中提供的“文档”链接所述:https://github.com/cefsharp/CefSharp/blob/cefsharp/69/NuGet/Readme.txt

您可以在其中阅读:

现在我让它像魅力一样运行:D

答案 4 :(得分:-2)

您可以阅读NuGet软件包的(Documentation),也有必要在应用程序中添加app.manifest