You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup打包WebView2应用安装后无法正常启动显示问题

问题根因

故障核心是Inno Setup打包时未完整纳入WebView2的依赖文件,同时默认配置下程序在Program Files这类系统权限保护目录运行时,没有权限自动生成WebView2所需的缓存目录,最终导致进程后台驻留、主界面无法加载。
你手动运行bin/Release下的程序正常,是因为该目录下依赖文件完整,且在非系统保护目录下程序有完整读写权限,不会触发权限限制。

修复步骤
  • 修正Inno Setup的文件打包逻辑,不要仅手动添加3个WebView2托管dll,需要将bin/Release目录下的全部输出文件完整打包,重点确保整个runtimes文件夹被正确纳入:该文件夹存放了不同系统架构下WebView2调用的原生二进制依赖,缺失这部分文件时,托管dll无法完成加载,是进程挂起的核心诱因。
  • 不要尝试在安装包内预置My_Application.exe.WebView2文件夹:这个目录是WebView2默认的用户数据缓存路径,程序安装到Program Files目录后,普通用户权限无法向该目录写入数据,强行预置反而容易引发权限冲突。
  • 修改VB.NET项目里的WebView2初始化代码,主动指定具备读写权限的缓存目录,不要使用默认的安装目录下的缓存路径,参考代码:
Imports System.IO
' 该段代码需要放在WebView2初始化逻辑之前执行
Dim cachePath As String = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
    "你的应用程序名",
    "WebView2Data"
)
WebView21.CreationProperties = New Microsoft.Web.WebView2.WinForms.CoreWebView2CreationProperties With {
    .UserDataFolder = cachePath
}
' 再执行WebView2初始化
Await WebView21.EnsureCoreWebView2Async()
  • 更新Inno Setup脚本的[Files]段配置,用通配符匹配所有输出文件和子目录,避免遗漏依赖,参考配置:
[Files]
; 请将Source路径替换为你本地项目实际的bin\Release目录路径
Source: "D:\YourProject\bin\Release\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs
  • 打包前先做本地验证:手动将bin/Release下的全部文件复制到Program Files下的对应应用目录,直接运行exe确认可以正常启动,再用新脚本生成安装包,在干净测试环境验证安装启动流程。

说明:你的两台测试设备都已经全局安装WebView2 Runtime依然触发故障,和全局运行时本身无关,就是依赖文件缺失+缓存目录权限不足两个问题叠加导致的。

内容的提问来源于stack exchange,提问作者alberto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 20:15:39