electron程序启动报错“Uncaught Exception Error:The specified procedure could not be found”

分享如何通过兼容模式运行和管理员权限解决Electron程序启动时的'无法找到指定程序'错误,步骤包括设置兼容性和选择运行环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近上线的electron桌面端程序安装之后启动,老是出现报错“Uncaught Exception Error:The specified procedure could not be found”。

从现象上看是加载node文件出错了。

确定了几个方向,搜索了很多也没找到解决办法

因为用的electron版本稍旧,想到是不是因为和系统dll不兼容导致的。这么一想,就离成功不远了

于是,解决办法:

1.选择桌面图标,鼠标点击右键,选择“属性”

2.在属性页,选择标签“兼容性”

3.勾选“以兼容模式运行这个程序”

4.在兼容模式下拉框选择“windows7”或“Windows XP(Service Pack 3)”

5.不介意的话,可以勾选下面的“以管理员身份运行这个程序”

然后,就看到了期待已久的程序界面。

至此,大功告成。

补充一个解决办法

        package.json中检查含有c++扩展的依赖模块,查看它的模块版本,一般不兼容你所使用的node版本,需要给依赖降到兼容node的版本。
最快的方式:先确定你的node版本发布日期,比如node v14.21.1发布于2022年11月,然后上npmjs网站搜索该依赖,在[Versions]页直接定位到此2022年11月之前下载量最高的那个(精确日期去github上找),然后在你项目的package.json里修改版本即可。
强烈建议版本号前最好去掉"^"号,不然安装时可能会升级到你不想要的版本。(修改完版本号后别忘了npm先卸载再安装)

降级后或者修改完版本还不行,就要看看依赖的依赖了,可能会发现不一样的:
例如,有一个A模块要依赖node-addon-api:

// node_modules文件夹里A模块的package.json,并非你的项目package.json

"dependencies": {

"node-addon-api": "^8.1.0",

...

},

在npmjs网站中搜索该依赖,查看它的package.json

// node-addon-api 8.1.0的package.json

{

...,

"engines": {

"node": "^18 || ^20 || >= 21" // 发现它声明只兼容node 18、20、21及之后

}

}

  对于有node版本兼容声明的,去npmjs网站的[Versions]页查找能兼容你的node版本。比如v3.2.1声明兼容node 14,那就去找你A模块在哪个版本会依赖这个node-addon-api:^3.2.1(或者附近版本号), 最后在你的项目中将A模块切到那个版本。
  有些模块没有node版本声明怎么办?(比如上面的node-addon-api在以前没有声明),找离你node版本发布日期最接近的、下载量最高的,最后找到A模块在哪个版本依赖它们即可。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子建莫敌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值