【问题标题】:Electron: Keep Getting 'You'll need a new app to open this' ScreenElectron:不断出现“您需要一个新应用程序才能打开此”屏幕
【发布时间】:2021-03-17 06:49:16
【问题描述】:

使用 Vuejs 开发了一个 Electron 应用程序,并且在开发过程中一切正常,但是打包后我在启动后不断收到此弹出窗口(注意:这是一个示例图像 - 我的没有说'windowsdefender' 但其他方面相同)。

使用electron-builder创建应用,构建json如下,并安装在PC上:

{
  "productName": "My App",
  "appId": "com.mycompany.myapp",
  "win": {
    "icon": "build/icon.png",
    "target": [
      "nsis"
    ]
  }
}

虽然应用确实打开了,但没有初始屏幕。但是,我可以打开开发工具,但没有显示任何错误。

关于导致此问题的原因或如何解决的任何想法?

【问题讨论】:

  • 如果你给你的文件一个 .exe 扩展名,它会运行吗?我猜需要将构建器中的某些内容配置为创建一个 exe 文件(假设是 Windows)。我个人使用电子打包器,它会吐出一个 exe
  • 从一点点搜索,这是为了吐出一个安装程序,对吧?运行安装程序会导致此问题,还是运行已安装的实际应用程序会导致此问题
  • @pushkin 感谢您的回复。生成的文件包括一个可以在 Windows 上正常安装的 exe。应用程序启动时弹出窗口。

标签: electron electron-builder


【解决方案1】:

经过多次尝试,我终于弄明白了(或者至少我认为我知道是什么导致了问题)。

主要问题是在使用 vue 路由器(来自从网络移植的应用程序)时,使用“哈希”模式而不是“历史记录”非常重要。将此添加到您的路由器文件中:

const router = new VueRouter({
  mode: process.env.IS_ELECTRON ? "hash" : "history",
  routes
});

查看此链接了解更多详情(常见问题):Vue CLI plugin common issues

其次,我认为存在权限问题(即具有更高的安装权限),因此我将此行与 guid 一起添加到了我的 electron-builder.json 文件中。结果是这样的构建文件:

{
  "productName": "My App",
  "appId": "com.abcco.my-app",
  "win": {
    "icon": "build/icon.png",
    "target": "nsis",
    "requestedExecutionLevel": "requireAdministrator"
  },
  "nsis": {
    "guid": "6ee647a9-d5c6-46a9-a480-aa7d6d3d1c10",
    "oneClick": false,
    "allowToChangeInstallationDirectory": true
  }
}

由于我只为 Windows 开发,因此我能够使用此页面中的材料(React,但与 Electron 打包没有太大不同):

Electron Build file help

我做的最后一件事是删除所有“dist”文件并完全卸载应用程序(以前的版本)。我认为这清除了很多测试留下的“包袱”。

希望这对可能遇到相同问题的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2017-11-25
    • 2014-10-13
    • 1970-01-01
    • 2019-12-16
    • 2022-01-25
    • 2019-12-10
    • 2022-11-30
    • 1970-01-01
    • 2021-11-12
    相关资源
    最近更新 更多