如何更改 Electron Builder 创建的应用程序快捷方式中的 "Start in" 路径?

How to change the "Start in" path in a shortcut for an application created by Electron Builder?

我使用以下指令在 Windows 中构建我的应用程序 (nsis):

electron-builder --win --x64

为了方便我也用asar: false

“开始于”文件夹默认是这个:

C:\Users\UserName\AppData\Local\Programs\app-name

但我需要另一个:

C:\Users\UserName\AppData\Local\Programs\app-name\resources\app

我只看到 these options 与快捷方式相关:

  • createDesktopShortcut = true Boolean | “always” - Whether to create desktop shortcut. Set to always if to recreate also on reinstall (even if removed by user).

  • createStartMenuShortcut = true Boolean - Whether to create start menu shortcut.

  • menuCategory = false Boolean | String - Whether to create submenu for start menu shortcut and program files directory. If true, company name will be used. Or string value.

  • shortcutName String - The name that will be used for all shortcuts. Defaults to the application name.

我可以使用 process.chdir()

解决这个问题
const is_dev = require('electron-is-dev');
if (!is_dev) {
    process.chdir('path/to/resources/app');
}

但是,有没有更简洁的方法来更改 electron-builder 中“开始于”文件夹的路径?

NSIS 在创建快捷方式时使用 $OutDir(通常与 $InstDir 相同)作为 start-in 目录。不确定您是否可以在 electron-builder 中创建快捷方式之前更改此变量,但更改它不应该是您的首要任务。

应用程序在启动时应该依赖于工作目录,需要的资源应该相对于.exe加载and/or相对于特殊文件夹(%appdata % 和 %localappdata% 等)。当用户手动创建快捷方式或从 command-line/open with/drag&drop/whatever 启动您的应用程序时,工作目录可以是任何目录,您应该接受这一点并修复应用程序,而不是依赖于脆弱的快捷方式属性.