Windows 如何更改;从“开始”;Electron Builder创建的应用程序的快捷方式中的路径?

Windows 如何更改;从“开始”;Electron Builder创建的应用程序的快捷方式中的路径?,windows,electron,shortcut,electron-builder,desktop-shortcut,Windows,Electron,Shortcut,Electron Builder,Desktop Shortcut,我使用以下说明在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 我只看到与快捷方式相关的内容: createD

我使用以下说明在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
我只看到与快捷方式相关的内容:

  • createDesktopShortcut=true Boolean |“始终”
    -是否创建桌面快捷方式。如果要在重新安装时重新创建,则设置为“始终”(即使用户已删除)

  • createStartMenuShortcut=true Boolean
    -是否创建开始菜单快捷方式

  • menuCategory=false Boolean | String
    -是否为开始菜单快捷方式和程序文件目录创建子菜单。如果为true,将使用公司名称。或字符串值

  • shortcutName字符串
    -将用于所有快捷方式的名称。默认为应用程序名称

我可以通过使用
process.chdir()


但是,有没有更干净的方法来更改
electron builder
中的路径“Start in”文件夹?

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


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

您是对的。然后,我的解决方法是正确的,只要使用
process.chdir(app.getAppPath())
就足够了
const is_dev = require('electron-is-dev');
if (!is_dev) {
    process.chdir('path/to/resources/app');
}