如何使Electron包装/安装程序包含您的.dll

时间:2019-05-15 17:22:00

标签: electron electron-packager

我正在使用electron-packagerelectron-winstaller

我的目标是:打包一个安装程序,用户可以安装并运行我制作的程序。

我遇到的问题:我有一些外部.dll(即ffmpeg使用的那些),如果不将它们包含在可执行文件的根目录中,则节点模块将无法已加载,因此程序无法运行。 (它会显示“无法加载testaddon.node文件”)

我注意到打包程序+安装程序不包含我的.dll,即使我将它们包含在根目录中也被忽略了。 我使用以下命令打包:

electron-packager . appname --platform=win32 --arch=x64 --prune=true --out=build-releases --overwrite

我通过以下方式运行安装程序:node installers/win32/createinstaller.js

createinstaller.js:

var electronInstaller = require('electron-winstaller');

resultPromise = electronInstaller.createWindowsInstaller({
  appDirectory: 'build-releases/app-win32-x64',
  outputDirectory: 'build-releases/installer64',
  authors: 'Name',
  exe: 'app.exe',
});

resultPromise.then(
  () => console.log('It worked!'),
  e => console.log(`No dice: ${e.message}`)
);

如果安装程序运行后我将.dll手动放置在目录中,则一切都很好。

一种解决方案是:我可以编写一些代码来在安装程序运行后将那些.dll放入其中。

最好将它们全部独立包含以避免上述替代解决方案。

有人知道更好的解决方案吗?

0 个答案:

没有答案