delphi TEdgeBrowser金丝雀要求

yeotifhr  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(255)

我在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控件的当前版本。它在一个系统上完成了这一任务,而不是在开发系统上。

okxuctiv

okxuctiv1#

TEdgeBrowser需要WebView2 Runtime才能操作。有关详细信息,请访问MS Edge Documentation网站。
WebView2Loader.dll应该可由您的应用程序载入,位于相同的文件夹、已知的路径或注册在path环境变量中。最新版本可在NuGet上取得。Nupkg是zip封存档。请在build\native\文件夹中寻找。
TEdgeBrowser.BrowserExecutableFolder应指向WebView2运行时文件夹(如果是固定版本)。
固定版本分发,放置在您的应用程序文件夹中似乎是您的方案的首选方式。
微软声称,万年青版本将在下一个Windows版本中默认分发。

相关问题