首页 > 解决方案 > 包括非电子文件夹作为 NSIS 安装的一部分

问题描述

我一直在尝试向电子安装程序添加额外的功能,在那里我复制了一些打包在安装程序中的文件,但是当我尝试编译我的电子项目以创建安装程序时收到一个非描述性错误,即我得到:

* writing effective config
* packaging
* building
x [object Object]

这是我的脚本的样子:

!macro customInstall
  Rename "$APPDATA\myfolder\img" "$APPDATA\myfolder\img-old"
  SetOutPath "$APPDATA\myfolder"
  File /nonfatal /a /r "additional_files\*"
  CreateShortcut "$SMSTARTUP\mylink.lnk" "$INSTDIR\mylink.exe"
!macroend

除了文件复制部分之外,基本上一切正常。当我删除该部分时,项目构建并编译到安装程序中没有问题。

我也尝试使用CopyFiles而不是SetOutPathand File,当我将additional_files文件夹放入与安装(文件夹)相同的文件夹中时,它可以按预期工作dist,但我希望将文件夹打包在安装程序中。但是,我无法additional_files将安装打包。

我认为这是一个位置问题,即NSIS脚本无法找到该additional_files/文件夹​​。我尝试通过将文件夹package.json添加到files部分additional_files/并将其放在项目的根目录中来修改文件。

我什至尝试将它放在build我的脚本所在的文件夹中installer.nsh,但没有运气。

标签: electronnsis

解决方案


File查找相对于 .nsi 默认所在目录的文件。/NOCD可以用来防止这种情况,但我不确定电子是否使用该开关。

!cd可以在脚本中使用来更改目录,但我不确定在这种情况下这是否会对你有很大帮助,除非你愿意使用绝对路径,在这种情况下你可以只使用绝对路径和File指令反而。

如果你只知道你的 .nsh 文件在哪里,我想你可以试试File /r "${__FILEDIR__}\additional_files\*"


推荐阅读