我已按照此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>
答案 0 :(得分:3)
答案 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中不支持,因此在运行时加载它:
从XAMl中删除元素,而是放置任何容器,例如Border:
<Border x:Name="cefChromeContainer" />
在构造函数代码中,在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 的以下链接中所见:
此解决方案实际上位于cefsharp的Readme.txt文件中,如 saschad 在他的答案中提供的“文档”链接所述:https://github.com/cefsharp/CefSharp/blob/cefsharp/69/NuGet/Readme.txt
您可以在其中阅读:
- 对于
x86
或x64set your solution target architecture to
x86or
x64`,仅更改项目目前是不够的(请参阅 https://msdn.microsoft.com/en-us/library/ms185328.aspx#Anchor_0的 详细信息。)
现在我让它像魅力一样运行:D
答案 4 :(得分:-2)
您可以阅读NuGet软件包的(Documentation),也有必要在应用程序中添加app.manifest
。