命名空间"clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"中不存在ChromiumWebBrowser名称。

9
我曾经跟随这个链接 link 实现CefSharp应用程序。
但是我在编码MainWindow.xaml时遇到了问题。
VS 2015的Blend工具指出:
The name ChromiumWebBrowser does not exist in the namespace "clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
但是我已经通过NuGet包管理器安装了CefSharp.Common和CefSharp.Wpf v51.0.0,cef.redist.x64和cef.redist.x86 v3.2704.1432。
作为一个新手,我不知道如何解决这个问题。请帮我解决这个错误。
这是我的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>


它只是作为信息显示,还是它无法编译?有时候设计师说的话很蠢,但项目却可以顺利编译。也许清理一下你的项目并重新构建一下会有所帮助。 - Nawed Nabi Zada
@NawedNabiZada 我尝试了很多次,但没关系。 - Minkyu Kim
它能编译吗? - Nawed Nabi Zada
@NawedNabiZada 你能告诉我clr命名空间是在哪里定义的吗? - Minkyu Kim
@NawedNabiZada 不,它不会。 - Minkyu Kim
@NawedNabiZada 对不起,它可以编译,但是当我运行输出文件时,它停止了。 - Minkyu Kim
5个回答

6

我刚试了一下链接,就像我在评论中提到的那样,它可以编译而没有任何问题。

显示为错误,但您可以忽略它 可以忽略。

无预览可用 而且预览也不可用,我已经习惯了。

编译 编译时没有错误

程序启动 并且程序启动了。没有问题


1
我不知道为什么,但现在它运行良好!谢谢你。 - Minkyu Kim

2
对我来说,问题在于解决方案平台设置为 AnyCPU。
据我所知,CefSharp 不支持 AnyCPU。有趣的是,解决方案在 Release 模式下运行得很好,但在 Debug 模式下我立即收到了一个错误 - 符合指定绑定约束条件的类型上的构造函数调用引发了异常。 一旦我将解决方案平台改为 x64,XAML 错误就消失了(名称为“clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf”的命名空间中不存在 ChromiumWebBrowser)。然后我可以在 Debug 和 Release 模式下运行解决方案。

1
谢谢你的回答。但是我已经放弃使用CdefSharp并转向了Electron。等我有足够的时间时,我会再试一次。谢谢Marko。 - Minkyu Kim

0

我曾经遇到过同样的问题,并将配置从“debug”更改为“release”,并使用“x64”作为平台来解决它。

但仅仅从解决方案菜单中更改它是不够的,正如我通常做的那样。您需要转到Visual Studio主菜单下的“Compile > Configuration administration”,就像您可以在以下链接中看到的Microsoft

https://learn.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


0

在XAML设计器中不支持它,因此需要在运行时加载:

  1. 从XAML中删除元素,然后放置任何容器,例如Border:

    <Border x:Name="cefChromeContainer" />
    
  2. 在构造函数代码中,在InitializeComponent();调用之后,创建浏览器元素并放置到容器中。最好在类作用域中声明浏览器:

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

非常感谢!但我们选择了Electron。 - Minkyu Kim

-1

您可以在 NuGet 包的 (文档) 中阅读,还需要将 app.manifest 添加到您的应用程序中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接