电子生成器自定义 NSIS 包含脚本宏不起作用

Posted

技术标签:

【中文标题】电子生成器自定义 NSIS 包含脚本宏不起作用【英文标题】:electron-builder custom NSIS include script macro not working 【发布时间】:2021-06-10 13:07:16 【问题描述】:

我创建了一个electron 桌面应用程序并使用electron-builder 创建了一个安装程序。

现在我想尝试像 customInstallcustomUnInstall 这样的宏

我的installer.nsh 文件是

!macro customInstall
  MessageBox MB_OK "Test output 1"
!macroend

!macro customUnInstall
  MessageBox MB_OK "Test output 2"
!macroend

我的electron-builder 配置是

"build": 
    "nsis": 
      "include": "installer.nsh"
    ,
    "mac": 
      "icon": "build/icon.png"
    ,
    "win": 
      "icon": "build/icon.png"
    
  

但这对我不起作用。我已经确认 installer.nsh 正在通过在其中引入错误来工作。 我缺少什么让它工作?

【问题讨论】:

【参考方案1】:

实际上,此时一切正常。

您的宏 customInstallcustomUnInstall 定义正确,但它们不是从任何地方调用的。

只需从适当的部分/功能/地点/情况/等中调用它们。

它们的执行完全取决于你,脚本不会自动调用它们。

【讨论】:

无需从任何地方手动调用它们。 electron-builder 正在使用这些宏来完成这项工作。 installer.nshelectron-builder 配置的一部分 好的,显示生成的 .nsi 脚本如何调用 customInstall 和 customUnInstall 宏。 我了解它是如何设计的,我想看看真正的结果,electron-builder 是否生成了 .nsi 脚本文件并正确包含文件。如果没有(如果您的脚本无法发布,您可以自行检查),那么您需要手动调用该宏... 在我已经提到的问题中,我有installer.nsh 正在通过在其中添加MessageBox MB_OK ""Test output 1" 之类的错误来启动和运行。这意味着 macros 正在被调用 执行安装程序时,您是否看到带有文本“测试输出 1”的消息框?如果是,那么您的脚本正在运行并调用宏,否则为否。当您出现 MessageBox MB_OK ""Test output 1" 之类的错误时,这意味着脚本未正确编译,但与从安装程序中调用宏无关。

以上是关于电子生成器自定义 NSIS 包含脚本宏不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为 UIFont 定义宏不起作用

如何在 VS 2010 中出现第一个错误时停止 C# 编译(VS 2008 宏不起作用)!

为啥我的简单 C 宏不起作用?

为啥这个 Common Lisp 宏不起作用?书上的答题卡错了吗?

保存excel文件后运行宏不起作用

为啥这个在 Common Lisp 中漂亮地打印宏扩展的宏不起作用?都有哪些替代工具?