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

.NET 8 WinForms迁移后调用Microsoft Edge打开SSRS报表报错求助

.NET 8 WinForms调用Edge打开SSRS报表报错解决方法

问题原因

.NET Framework中ProcessStartInfo默认启用UseShellExecute,系统会通过Shell识别microsoft-edge:这类URI协议并启动对应程序;但.NET 8(及所有.NET Core后续版本)为了跨平台兼容性,将UseShellExecute默认值改为false,此时程序会把整个microsoft-edge:xxx字符串当作可执行文件路径在工作目录中查找,自然找不到对应文件,导致报错。

解决方案

只需修改代码,手动将UseShellExecute设为true,让系统通过Shell处理URI协议:

方法1:修改原有代码

Process ps = new Process();
ProcessStartInfo psi = new ProcessStartInfo("microsoft-edge:" + sb.ToString())
{
    UseShellExecute = true
};
ps.StartInfo = psi;
ps.Start();

方法2:使用更简洁的重载

Process.Start(new ProcessStartInfo
{
    FileName = "microsoft-edge:" + sb.ToString(),
    UseShellExecute = true
});

方法3:直接传入URI对象

如果URL格式合法,也可以直接用URI对象启动:

Process.Start(new Uri("microsoft-edge:" + sb.ToString()));

内容的提问来源于stack exchange,提问作者E. A. Bagby

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 16:55:58