【问题标题】:How can i add electron install location to PATH variable after install安装后如何将电子安装位置添加到 PATH 变量
【发布时间】:2020-02-24 12:06:00
【问题描述】:

我正在使用 electron-builder 来打包我的电子应用程序。
我的应用程序有一个 CLI 模块,所以我需要的是:

- 完成应用程序安装后(使用allowToChangeInstallationDirectory: true),我需要将安装位置添加到 PATH 变量中。

除了这个问题Adding electron application path to user environment variables after install,我找不到任何东西,它没有一个可行的答案

【问题讨论】:

    标签: node.js electron environment-variables electron-builder


    【解决方案1】:

    我让它像这样工作:

    • 下载EnvVarUpdate.nsh
    • 将其保存在与installer.nsh相同的文件夹中
    • 将以下内容添加到您的package.json
    {
      // ...
      "build": {
        // ...
        "nsis": {
          "warningsAsErrors": false
        }
      }
    }
    
    • installer.nsh 添加:
    !include "EnvVarUpdate.nsh"
    !macro customInstall
        ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
    !macroend
    !macro customUnInstall
        ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
    !macroend
    

    这会在安装时使用安装目录更新路径变量,并在卸载时将其删除。

    【讨论】:

    • 如果我不在 Windows 10 上以管理员身份运行它,我会在安装过程中遇到错误:Could not write updated PATH to HKLM 有什么想法吗?在 Windows 10 上,普通用户有自己的 PATH 变量,应该是可编辑的。
    • 我有一个正在使用电子安装程序创建的包,但我没有在任何地方看到 installer.nsh... 它应该在哪里?
    【解决方案2】:

    在 electron-builder 中,您可以使用自定义 NSIS 脚本,该脚本将在安装过程中执行:Electron-Builder custom NSIS script

    要检测安装目录,您可以在 NSIS 自定义脚本中使用参数 $INSTDIR。

    NSIS 文档描述了 PATH 操作:NSIS PATH manipulation

    请参阅下面的自定义 NSIS 脚本示例,以将安装目录附加到 PATH (build/installer.nsh):

    !macro preInit
       ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
    !macroend
    

    【讨论】:

    • 我这样做了,但我得到了这个错误:Invalid command: "${EnvVarUpdate}" Error in macro preInit on macroline 1
    • 我修好了。只是我必须先下载EnvVarUpdate.nsh,然后我使用!macro customInstall而不是!macro preInit(这不起作用)
    猜你喜欢
    • 2020-10-27
    • 1970-01-01
    • 2011-02-23
    • 2019-04-24
    • 1970-01-01
    • 2014-12-31
    • 2021-07-05
    • 2012-02-25
    • 2015-04-11
    相关资源
    最近更新 更多