我在RADStudio10.4.2悉尼测试了TEdgeBrowser。将组件拖放到C++Builder中的窗体上,然后调用:
EdgeBrowser1->Navigate("https://www.stackoverflow.com/");这会在我的开发机器上导致一个错误:
未能找到已安装的WebView2运行时或不稳定的Microsoft安装。
我已经将WebView2Loader.dll (从C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\win32\)放置到项目的可执行文件夹中,所以这不可能是错误的原因。
在那之后,我安装了边缘金丝雀,然后它开始工作,没有错误。
但是,如果我在Release配置中编译相同的项目,然后在另一个系统上运行,该系统只有Microsoft浏览器的稳定安装,而且没有安装边缘金丝雀,那么所有这些都能工作。
但是,如果我在构建系统上运行相同的Release构建,它就无法加载(可能是因为与Debug构建相同的原因--它找不到金丝雀安装)。
我测试了TMS的TAdvWebBrowser组件,它没有这个需求,而且它在没有安装边缘金丝雀的情况下可以在这两个系统上工作。但我更愿意使用TEdgeBrowser,以避免对第三方组件的不必要依赖。
TEdgeBrowser出现这种奇怪行为的原因是什么?在RADStudio11Alexandria也会发生这种情况吗?可以避免这种情况,以便在两个系统上都安装稳定的Edge吗?
编辑:我后来发现有这样的属性:
EdgeBrowser1->BrowserExecutableFolder = "C:\\Program Files (x86)\\Microsoft\\EdgeCore\\101.0.1210.53";有了这个,一切都成功了。但是,根据文档(使用TEdgeBrowser组件和更改TWebBrowser组件),它应该在系统上自动定位WebView2控件的当前版本。它只在一个系统上这样做,但在开发系统上却不这样做。
发布于 2022-05-27 08:56:39
TEdgeBrowser需要WebView2 Runtime才能操作。关于MS Edge文档网站的更多细节。
WebView2Loader.dll应可由应用程序加载,位于同一文件夹、已知路径或在path环境变量中注册。最新版本可在NuGet上获得。Nupkg是一个压缩档案。查看build\本机\文件夹。
如果是固定版本,TEdgeBrowser.BrowserExecutableFolder应该指向WebView2运行时文件夹。
固定版本分发,放置在您的应用程序文件夹中,似乎是您的方案的首选方法。
MS声称,在下一个Windows版本中,将默认分发常绿版本。
https://stackoverflow.com/questions/72398378
复制相似问题