我在RAD Studio 10.4.2 Sydney中测试了TEdgeBrowser
。在C++Builder中将组件放到一个窗体上,然后调用:
EdgeBrowser1->Navigate("https://www.stackoverflow.com/");
这会在我的开发计算机上产生错误:
找不到已安装的WebView 2运行时或不稳定的Microsoft Edge安装。
我已经将WebView2Loader.dll
(来自C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\win32\
)放置到项目的可执行文件夹中,因此这不可能是错误的原因。
从那以后,我安装了Edge Canary,然后它开始工作,没有错误。
然而,如果我在Release
配置中编译同一个项目,然后在另一个系统上运行,该系统只安装了Microsoft Edge浏览器,而没有安装Edge Canary,那么它就可以正常工作。
但是,如果我在我的构建系统上运行相同的Release
构建,它将无法加载(可能是因为与Debug
构建相同的原因-它无法找到Canary安装)。
我测试了TMS的TAdvWebBrowser
组件,它没有这个要求,并且在没有安装Edge Canary的情况下,它可以在两个系统上工作。TEdgeBrowser
出现这种奇怪行为的原因是什么?RAD Studio 11 Alexandria中是否也发生了同样的情况?是否可以避免这种情况,以便在两个系统上都安装稳定的Edge?
**EDIT:**我后来发现有这样的属性:
EdgeBrowser1->BrowserExecutableFolder = "C:\\Program Files (x86)\\Microsoft\\EdgeCore\\101.0.1210.53";
但是,根据文档(Using TEdgeBrowser Component and Changes to the TWebBrowser Component),它应该在系统上自动定位WebView 2控件的当前版本。它在一个系统上完成了这一任务,而不是在开发系统上。
1条答案
按热度按时间okxuctiv1#
TEdgeBrowser
需要WebView2 Runtime
才能操作。有关详细信息,请访问MS Edge Documentation网站。WebView2Loader.dll
应该可由您的应用程序载入,位于相同的文件夹、已知的路径或注册在path
环境变量中。最新版本可在NuGet
上取得。Nupkg是zip封存档。请在build\native\文件夹中寻找。TEdgeBrowser.BrowserExecutableFolder
应指向WebView2
运行时文件夹(如果是固定版本)。固定版本分发,放置在您的应用程序文件夹中似乎是您的方案的首选方式。
微软声称,万年青版本将在下一个Windows版本中默认分发。