使用带有电子构建器的 nsis inetc 插件

问题描述 投票:0回答:3

我目前正在开发一个电子应用程序的安装程序,在安装过程中我需要发出简单的 POST 请求来验证凭据。我发现有这个

inetc
插件可以做到这一点。然而,由于我使用的是 nsis 附带的电子生成器,我真的不知道如何在这个环境中安装该插件。

所以这就是我找到 nsis 源的地方(我认为):

node_modules\app-builder-lib\templates

nsis-source

然后这是我已经尝试过的:

  1. Plugins
    目录从 inetc 包复制到(上面的屏幕)nsis 目录
  2. 将 inetc 包的所有内容复制到(上面的屏幕)nsis 目录并运行
    build_msvc
    文件

最后,当我尝试编译我的应用程序时,我总是收到错误:

Plugin not found, cannot call inetc::post

如何安装并使用该插件?

electron nsis electron-builder
3个回答
4
投票

我正在尝试 Anders 的答案,但运气不佳,然后通过利用一些 git 问题跟踪器和尝试错误方法,我弄清楚了它是如何通过电子构建器设置为 nsis 完成的。

所以这些是您要采取的步骤:

  1. 下载
    inetc
    插件并解压,然后打开
    Plugins
    目录 step2
  2. 打开你的
    electron
    项目目录,打开
    build
    目录 step1
  3. Plugins
    目录的内容从
    intec
    复制到项目
    build
    位置 step3

此时您就可以开始了,您可以在

inetc
文件中使用
installer.nsh
功能。


3
投票

我对电子构建器一无所知,但看起来它将其插件存储在一个名为

nsis-resources
的文件夹中,它可能位于
%localappdata%\electron-builder\cache
下的某个位置。您还可以尝试搜索 nsProcess.dll,因为这是它捆绑的第 3 方插件之一。

如果其他方法都失败,您可以添加自定义目录:

!addplugindir /x86-unicode "c:\mynsisplugins\x86-unicode"

您还必须记住使用正确的插件目标(/x86-unicode 与 /x86-ansi)。


0
投票

类似的问题,但插件不同。

AccessControl
插件添加到我的项目时,我遇到了一些问题。在尝试了多种方法之后,我发现问题是由于
AccessControl
插件提供的文件夹命名不正确造成的。这些文件夹被命名为:

  • i386-ansi
  • i386-unicode

但是,我检查的其他插件(包括

inetc
)的文件夹名为:

  • x86-ansi
  • x86-unicode

重命名文件夹以遵循此命名约定解决了该问题。

解决问题的步骤

  1. 重命名文件夹:
  • i386-ansi
    更改为
    x86-ansi
  • i386-unicode
    更改为
    x86-unicode
  1. 放置文件夹:
  • 将重命名的文件夹移动到 Electron 应用程序项目的构建文件夹中。
  • 直接调用函数:无需在自定义
    AccessControl.nsh
    脚本顶部包含或导入
    .nsh
    (例如
    include.nsh
    )。只需直接从插件调用函数即可。例如:

AccessControl::GrantOnFile "$APPDATA\${APP_PACKAGE_NAME}" "(S-1-5-32-545)" "FullAccess"

按照以下步骤操作,AccessControl 插件应该可以在您的项目中正常工作。

我希望这些信息可以节省某人的时间。

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.