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

调用Process.Start打开本地HTML文件时抛出Win32Exception异常

解决Process.Start打开本地HTML文件抛出"无效OS平台应用"异常的问题

问题分析

直接调用Process.Start(_helpURL)在.NET Core/.NET 5+环境下会报错,原因是该环境中Process.Start(string)重载默认将传入路径视为可执行程序,而非需要通过系统默认关联程序打开的文件,而HTML文件本身不是可执行文件,因此触发Win32Exception。

解决方案

显式使用ProcessStartInfo并设置UseShellExecute = true,让系统调用默认关联程序打开HTML文件:

修改后的代码

private static void OpenHelpPage()
{
    // 用绝对路径避免相对路径的工作目录问题
    string helpFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "HelpPage.html");
    
    ProcessStartInfo psi = new ProcessStartInfo(helpFilePath)
    {
        UseShellExecute = true
    };
    
    Process.Start(psi);
}

关键说明

  • UseShellExecute = true:启用系统shell处理文件关联,让系统自动调用默认浏览器打开HTML文件,这是解决问题的核心。
  • 绝对路径适配:通过AppDomain.CurrentDomain.BaseDirectory获取程序运行目录,拼接HTML文件路径,避免因工作目录变化导致的文件找不到问题。

补充验证

  1. 可提前用File.Exists(helpFilePath)校验文件是否存在,排除路径错误。
  2. 手动双击HTML文件,确认系统已正确将.html文件关联到默认浏览器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:22:40