解决 Chrome 下载 `.crx` 文件被自动删除及“无法安装扩展程序,因为它使用了不受支持的清单版本”问题

一、问题背景

在开发、测试或使用某些离线 Chrome 扩展时,用户常遇到两类典型问题:

  1. 下载 .crx 文件后几秒内被系统或浏览器自动删除
  2. 尝试通过"加载已解压的扩展程序"安装时,提示: "无法安装扩展程序,因为它使用了不受支持的清单版本。无法加载清单。"

二、问题一:.crx 文件下载后被自动删除

原因分析

  • 自 Chrome 33 起,Google 禁止直接安装非 Web Store 来源的 .crx 文件。
  • Windows Defender 或其他杀毒软件可能将 .crx 识别为潜在风险文件并自动隔离。
  • Chrome 的"安全浏览"功能会主动清理可疑下载项。

✅ 推荐解决方案:改后缀 + 解压加载(通用且安全)

  1. 开启下载确认提示

    进入 Chrome 设置 → 隐私和安全 → 下载内容 ,勾选 "下载前询问每个文件的保存位置"

  2. 手动重命名后缀

    下载 .crx 时,在保存对话框中将文件名从 xxx.crx 改为 xxx.zip,再点击"保存"。

  3. 解压并加载扩展

    • 解压 .zip 文件到任意文件夹;
    • 访问 chrome://extensions/
    • 开启右上角 【开发者模式】
    • 点击 【加载已解压的扩展程序】,选择解压目录。

💡 此方法绕过了 Chrome 对 .crx 的签名验证和来源限制,适用于所有现代 Chrome 版本。


三、问题二:"无法安装扩展程序,因为它使用了不受支持的清单版本"

核心原因

  • 扩展的 manifest.json 中声明了 "manifest_version": 2(即 Manifest V2);
  • 自 Chrome 112 起,Google 逐步弃用 MV2;
  • 自 Chrome 138(预计 2025 年中发布)起,MV2 扩展完全不可加载,无论通过何种方式。

📌 当前时间:2025年11月11日。主流 Chrome 稳定版已普遍 ≥ 138,MV2 已正式终结


四、针对 Manifest V2 兼容性的完整解决方案(按 Chrome 版本分类)

✅ 方案 A:使用 Chrome 实验性 Flag(仅限 Chrome 112 -- 137)

这是最简单的临时方案,适合仍在使用旧版 Chrome 的用户。

操作步骤:
  1. 在地址栏输入:

    复制代码
    chrome://flags/#allow-legacy-mv2-extensions
  2. 找到 "Allow legacy extension manifest versions" 选项;

  3. 将其设置为 Enabled

  4. 重启浏览器

  5. 再次尝试加载 MV2 扩展。

⚠️ 注意事项:

  • 此 flag 仅在 Chrome 112 至 137 版本中存在
  • Chrome 138+ 已彻底移除该 flag,访问链接将显示"未找到";
  • 即使启用,部分企业策略或安全组策略仍可能覆盖此设置。

✅ 方案 B:通过企业策略启用 MV2(Windows,仅限 ≤ Chrome 137)

适用于 IT 管理员或需批量部署的场景。

注册表配置(Windows):
  1. 打开注册表编辑器(regedit);

  2. 导航至:

    复制代码
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies
  3. 依次创建项:GoogleChrome

  4. Chrome 下新建 DWORD (32-bit) 值 ,命名为:

    复制代码
    ExtensionManifestV2Availability
  5. 设置值为:

    • 1:允许用户控制(推荐);
    • 2:强制启用(管理员策略);
  6. 重启 Chrome,访问 chrome://policy/ 验证策略生效。

🔒 此方法在 Chrome 138+ 同样失效,Google 已硬编码禁用 MV2。


✅ 方案 C:升级扩展至 Manifest V3(长期唯一可靠方案)

若你拥有扩展源码或可修改权限,强烈建议迁移到 Manifest V3。

基本迁移步骤:
  1. 编辑 manifest.json

    json 复制代码
    {
      "manifest_version": 3,
      "name": "My Extension",
      "version": "1.0",
      "background": {
        "service_worker": "background.js"
      },
      "permissions": ["storage", "activeTab"]
    }
  2. 将原 background.scripts 替换为 service_worker

  3. 移除 web_accessible_resources 中的通配符写法;

  4. 使用 chrome.action 替代 chrome.browserAction

  5. 测试功能完整性。

📘 官方迁移指南:Migrate to Manifest V3


✅ 方案 D:改用 Firefox 浏览器(终极替代方案)

  • Firefox 仍全面支持 Manifest V2 ,且允许加载本地 .xpi 或解压扩展;
  • 对于 Dark Reader、SwitchyOmega、Tampermonkey 等经典插件,Firefox 版本通常维护良好;
  • 若工作流严重依赖 MV2 插件,可考虑将 Firefox 作为主力开发/测试浏览器。

五、总结与建议

场景 推荐方案
Chrome < 138,临时使用 MV2 插件 启用 chrome://flags/#allow-legacy-mv2-extensions
Chrome < 138,企业环境/批量部署 配置注册表策略 ExtensionManifestV2Availability
Chrome ≥ 138(当前主流版本) 必须升级到 Manifest V3改用 Firefox
避免 .crx 被删 下载时改 .crx.zip,解压后加载

❗重要提醒:

Google 已明确表示 Manifest V2 将不再回归。任何依赖 MV2 的业务系统、自动化工具或内部插件,都应尽快启动迁移计划。


六、附录:如何查看 Chrome 版本?

  1. 地址栏输入:chrome://version
  2. 查看第一行 "Google Chrome" 后的版本号(如 138.0.7200.100

若版本 ≥ 138,请直接采用 方案 C 或 D


参考文献

相关推荐
前端大卫31 分钟前
Vue3 + Element-Plus 自定义虚拟表格滚动实现方案【附源码】
前端
却尘1 小时前
Next.js 请求最佳实践 - vercel 2026一月发布指南
前端·react.js·next.js
ccnocare1 小时前
浅浅看一下设计模式
前端
Lee川1 小时前
🎬 从标签到屏幕:揭秘现代网页构建与适配之道
前端·面试
Ticnix1 小时前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人1 小时前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
twl1 小时前
OpenClaw 深度技术解析
前端
崔庆才丨静觅1 小时前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人2 小时前
vue3使用jsx语法详解
前端·vue.js
天蓝色的鱼鱼2 小时前
shadcn/ui,给你一个真正可控的UI组件库
前端