电子投掷错误%1不是具有自定义节点插件的有效win32应用程序

时间:2016-07-05 16:59:12

标签: node.js electron

我编写了一个自定义节点插件,在运行64位版本的Electron时可以正常工作。 我尝试将架构设置为ia32并且所有内容都已构建,但无论我做什么,我都会收到无效的win32应用程序错误。

我的环境设置为:

npm_config_disturl=https://atom.io/download/atom-shell
set npm_config_target=1.0.1
set npm_config_arch=ia32
set npm_config_runtime=electron
set HOME="C:\Users\myHome\.electron-gyp"
set VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140

我一直在通过调用npm install来构建插件。

2 个答案:

答案 0 :(得分:0)

这是我将节点设置为32位目标并以32位格式安装所有软件包的方法。这个对我有用。您可以尝试。

npm set npm_config_arch ia32
npm clean-install --arch=ia32

第一个命令将节点环境设置为32位。 第二条命令重新安装所有与32位兼容的节点程序包。

答案 1 :(得分:-1)

我试图从mi Mac编译Windows,但我也遇到了这个问题,但是经过一番阅读,我弄清楚了如何进行操作,毕竟我可以说我明白了。昨天我花了一整天的时间在(其他)Linux笔记本电脑中设置Windows虚拟机(我之所以使用linux笔记本电脑,是因为我的Mac电脑的存储空间已耗尽...)。我在Windows中的电子主进程的preloadScript遇到了问题,Cant找到了该脚本,它也已解决。

无论如何,我认为@tojocky的库节点打印机维护得很好,另一方面,在电子生成器文档中,他们说您出于自然原因应该使用本机编译。有了它,您将看到它是一个更干净实用的解决方案...

这是我的整个过程,希望对遇到相同问题的人有所帮助:

  • 获取VirtualBox(或Parallels,但不是免费的)
  • 获取W10的iso
  • 使用此W10 iso创建一个VM,并且应该为该VM提供一定的存储空间(因为需要编译一些依赖项),我已为此VM分配了60gb
  • 一旦我运行了该VM,我便将其安装在了Visual Studio 2017机器中(包括其构建工具,这是必需的)
  • 然后,我用CMD制作剩下的
  • 安装NodeJS(和NPM,但随附)
  • 全局安装node-gyp
  • 安装Python 2.7
  • 从git克隆您的项目(以我为例)
  • npm i(在您的项目中),您当然应该在package.json中具有模块electronic-builder作为npm依赖项。 (这里我遇到了一些麻烦,因为当node-gyp尝试重建打印机以生成Windows二进制文件时失败了,这是因为无法找到python可执行文件,因此如果遇到此问题,您应该将其添加为:npm在我的情况下,配置设置python“ c:\ Python27 \ python.exe”)

然后重试npm i和Voila! 毕竟,您应该使用electron-builder进行构建,在我的情况下,我的npm脚本命令是build --win --x64,但是您也可以对32位使用--ia32标志