如何分发我的Vb.net Webview2应用程序?



所以我用webview2开发了一个vb.net应用程序。我的问题是:如果我把整个调试文件夹复制到一台新电脑上,它就能工作。但是,如果我用整个调试文件夹创建一个安装程序,它就不起作用了。任何想法?

我正在使用NuGet的稳定包。

当我复制并粘贴文件时,我甚至不需要安装常绿版本,它就工作了。

您是否使用默认的用户数据文件夹并且正在安装到程序文件中?如果是这样,你可能需要显式地将你的用户数据文件夹指定为应用程序的应用程序数据文件夹。在WebView2文档中阅读有关管理用户数据文件夹的更多信息。

默认用户数据文件夹是主机应用程序可执行文件的路径,带有"。webview2 "附在末尾。所以记事本的默认设置是"C:windowssystem32notepad.exe.webview2"。当包含主机可执行文件的路径没有允许主机应用创建用户数据文件夹的权限时,这就不起作用了。大多数安装程序运行提升,并具有创建应用程序安装的文件和文件夹的额外权限。但是当安装的应用程序运行时,它通常没有权限修改其安装路径的内容。相反,你应该明确地指定一个用户数据文件夹,并管理该文件夹,包括在卸载应用程序时删除它。

Public Sub New()
Dim url As String = Nothing
InitializeComponent()
InitializeBrowser(url)
End Sub
Private Async Sub InitializeBrowser(ByVal Optional url As String = Nothing)
Dim userDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "SoftwareName"
Dim env = Await CoreWebView2Environment.CreateAsync(Nothing, userDataFolder)
Await WebView21.EnsureCoreWebView2Async(env)
WebView21.Source = New Uri("https://www.google.com/")
End Sub

也许这是你的解决方案:3月14日,微软开始在Windows 10机器上自动安装"Microsoft Edge WebView2 Runtime",而不会通知用户。

来源:https://www.bleepingcomputer.com/news/microsoft/microsoft-is-auto-installing-the-windows-10-webview2-runtime/

最新更新