【问题标题】:How to distribute my Vb.net Webview2 app?如何分发我的 Vb.net Webview2 应用程序?
【发布时间】:2021-03-04 06:54:16
【问题描述】:

所以我用 webview2 开发了一个 vb.net 应用程序。我的问题是:如果我将整个调试文件夹复制到新计算机上,它可以工作。但是如果我用整个调试文件夹创建一个安装程序,它就不起作用。有什么想法吗?

我正在使用来自 NuGet 的稳定包。

当我复制和粘贴文件时,我什至不需要安装常青版本,它就可以工作了。

【问题讨论】:

  • 你不应该对整个 Debug 文件夹做任何事情。那是为了调试。 Release 文件夹是您部署的位置。您应该更改构建配置并构建和发布它的输出。
  • 我没有使用 WebView2,但我认为它的工作方式与任何其他库相同,这意味着您应该能够打开项目属性的 References 页面并设置 Copy Local True 的相关引用的属性。然后,该库将与您的 EXE 一起复制到输出文件夹。
  • 我刚刚测试过,在添加了 Microsoft.Web.WebView2 包的 v1.0.705.50 之后,添加了三个 WebView2 引用,并且默认情况下,所有这些引用都为 True。当我构建项目时,所有三个 DLL 都被复制到输出文件夹中。你看到同样的东西吗?
  • @jmcilhinney 是的。我看到那些东西。但是,当转移到另一台电脑时,该应用似乎找不到它们。
  • 我也做了发布的事情。甚至通过 vs 创建了安装程序,但没有让它工作。

标签: vb.net webview2


【解决方案1】:

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

默认用户数据文件夹是主机应用程序可执行文件的路径,末尾附加了“.WebView2”。所以记事本的默认值为“C:\windows\system32\notepad.exe.webview2”。当包含主机可执行文件的路径无权允许主机应用程序创建用户数据文件夹时,这不起作用。大多数安装程序运行提升并具有额外的权限来创建应用程序的已安装文件和文件夹。但是,当安装的应用程序运行时,它通常无权修改其安装路径的内容。相反,您应该明确指定一个用户数据文件夹并管理该文件夹,包括在您的应用卸载时可能将其删除。

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

    • 欢迎来到 Stack Overflow。这里的问题是什么?在这种情况下,“分发”是什么意思?请概述一下您要完成的工作,以及您为解决该问题所做的工作或面临的挑战。
    【解决方案3】:

    也许这可以是您的解决方案: 3 月 14 日,微软开始在 Windows 10 机器上自动安装“Microsoft Edge WebView2 Runtime”,无需通知用户。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多