请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

win7系统安装后无法运行

打包32位或64位的安装包,win7系统安装后都无法运行。提示 ,不是有效的win32应用程序图片描述

正在回答 回答被采纳积分+3

插入代码

2回答

西一凹 2025-02-11 03:27:07

同学你好,通过你的打包程序,以及提供的package.json,看到你的项目中,使用的electron版本是 30.0.0 以上的版本,

Electron 30 基于 Chromium 124,而 Chromium 从 109 版本开始 要求最低 Windows 10(版本 1809 或更高)。

这意味着:

代码级不兼容:Electron 30 的底层依赖(如 Chromium、Node.js)已移除对 Windows 7 的 API 调用。

无官方修复途径:即使强制打包为 32 位(ia32),应用也无法在 Windows 7 上运行。


由于electron官方在 Electron23 版本中,就移除了对 Windows 7, Windows 8 和 Windows 8.1的支持,

所以,如果项目必须支持win7系统,可参考的解决方案如下


降级到 Electron 22.x 或更低版本

在 package.json 中指定 Electron 版本为 22.x(最后一个支持 Win7 的主版本):

https://img1.sycdn.imooc.com/szimg/67aa4e4009689b8003960106.jpg

运行 npm install  重新安装依赖。


再重新执行打包命令,且要注意,如果要同时兼容 32位和64位的系统,那么,应当打包为 32位的应用程序

------------------------------------

若任然无法解决

可尝试在 项目根目录创建 win7兼容文件 app.manifest

文件名为:app.manifest

并粘贴放入以下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!-- 声明支持 Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <!-- 以普通用户权限运行 -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>


1、在项目根目录的 electron-builder.json5 文件中增加以下代码

1
2
3
4
5
6
7
8
9
10
win: {
    target: "nsis",
    arch: "ia32", // 强制打包 32 位应用
    extraFiles: [
      {
        from: "app.manifest", // 兼容性清单文件
        to: "resources/app.manifest"
      }
    ]
  },

2、在项目根目录的 electron-builder.json5 文件中的

1
2
3
files: [
    'dist'
  ]

修改为

1
2
3
4
5
files: [
    "dist",
    // 包含兼容性清单文件(若存在)
    "app.manifest"
  ],

最终完整的 electron-builder.json5 文件内容如下

 

https://img1.sycdn.imooc.com/szimg/67aa5146098e6a6807940652.jpg

修改完成之后,再进行打包尝试

0 回复 有任何疑惑可以回复我~
西一凹 2025-02-07 17:37:00

同学你好,麻烦提供一下你package.json文件 scripts 部分的截图看一下

 

0 回复 有任何疑惑可以回复我~
  • 提问者 max123 #1
    {
      "name": "project",
      "version": "1.0.0",
      "private": true,
      "type": "module",
      "main": "dist/index.js",
      "scripts": {
        "dev": "vite",
        "build": "vite build && electron-builder -mwl",
        "build:linux": "vite build && electron-builder --linux tar.xz",
        "build:win32": "vite build && electron-builder --windows nsis:ia32",
        "build:win64": "vite build && electron-builder --windows nsis:x64",
        "build:mac": "vite build && electron-builder --mac",
        "preview": "vite preview"
      },
      "dependencies": {
        "js-md5": "^0.8.3",
        "pinia": "^2.2.6",
        "vue": "^3.5.13",
        "vue-pdf-embed": "^2.1.1",
        "vue-router": "^4.4.5"
      },
      "devDependencies": {
        "@vitejs/plugin-vue": "^5.2.1",
        "@vue/test-utils": "^2.4.6",
        "electron": "^30.0.0",
        "electron-builder": "^24.13.3",
        "jsdom": "^25.0.1",
        "sass-embedded": "^1.82.0",
        "video.js": "^8.21.0",
        "vite": "^6.0.1",
        "vite-plugin-electron": "^0.29.0",
        "vite-plugin-vue-devtools": "^7.6.5",
        "vitest": "^2.1.5"
      }
    }
    回复 有任何疑惑可以回复我~ 2025-02-08 09:06:50
  • 西一凹 回复 提问者 max123 #2
    同学你好,这种情况可能需要你加入咱们慕课网的课程QQ群,然后提供你打包后的安装包,才能看出原因呢
    回复 有任何疑惑可以回复我~ 2025-02-08 12:03:19
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号