繁体   English   中英

如何将 WebView2 文件夹移动到其他位置?

[英]How could I move WebView2 folders to a different location?

是否有任何可能的方法将 Microsoft WebView2 WPF 包创建的运行时和 * .exe.WebView2文件夹移动到不同的文件夹或嵌入它们? 在下面的屏幕截图中选择了 2 个文件夹。

我不想要的 2 个文件夹

我已经使用Costura.Fody来嵌入 dll。 理想的结果是如果将这 2 个文件夹移动到 bin 文件夹。

.\{ExecutableName}.WebView2文件夹是用户数据文件夹的默认位置。 这包含 WebView2 生成的所有状态(cookie、HTTP 缓存、indexeddb 存储等),默认情况下与主机应用程序的可执行文件位于同一文件夹中。 但是您可以(并且应该)指定不同的路径来存储用户的 WebView2 状态。 有关用户数据文件夹及其放置位置的更多信息,请参阅管理用户数据文件夹文档

第二个文件夹.\runtimes包含不同 CPU 架构中的WebView2Loader.dll文件。 目前无法指定找到此文件的路径,但已请求( GH问题)并且在我们的积压工作中。

您必须分别解决这两个文件夹问题

  1. *.exe.WebView2 是在应用程序中运行 webview2 时创建的缓存文件夹。 以下是如何将文件夹重定向到你想要它去的地方,我使用了 Path.GetTempPath()。
CoreWebView2Environment cwv2Environment = await CoreWebView2Environment.CreateAsync(null, Path.GetTempPath(), new CoreWebView2EnvironmentOptions());
await webBrowser.EnsureCoreWebView2Async(cwv2Environment); 

Path.GetTempPath() 将重定向到用户本地应用程序数据临时,因此它可以防止服务器上的权限问题,并且可以通过不断增长的硬盘空间的基础设施轻松维护。

  1. 当前的临时解决方案是将运行时文件夹移动到主目录(如果这是您想要的位置),然后第二行将其删除。 在 Visual Studio 中,转到项目属性 -> 编译 -> 生成事件,然后在生成后事件命令行中添加以下内容。
xcopy /y $(TargetDir)runtimes\win-x64\native\WebView2Loader.dll $(TargetDir)$(OutDir)
RD /S /Q "$(TargetDir)runtimes\"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM