**Context:**我有一个应用程序ExternalApp.exe
,需要读取一个文件来执行:File.ini
。此文件包含ExternalApp.exe
应用程序的配置,并且无法读取。
**解决方案:**创建一个electron
应用,读写File.ini
,执行ExternalApp.exe
。使用electron-builder
构建electron
portable
应用程序,并将生成的.exe(Launcher.exe
)移动到ExternalApp
文件夹。
最后我们得出这样的结论:
[ExternalApp] (folder)
|-- ExternalApp.exe
|-- File.ini
|-- Launcher.exe (electron app)
**问题:**这在开发和运行npm start
时工作正常,没有问题,但当我将应用程序编译为可执行文件时,尝试从AppData
而不是从ExternalApp
文件夹读取File.ini
。
不知道我做错了什么。代码如下:
打开外部ExternalApp.exe
const {shell} = require('electron');
shell.openExternal('./ExternalApp.exe').then(response => {
console.log(response);
});
测试结果:
undefined //Instead, the Windows Explorer is opened.
读取File.ini
文件
const fs = require('fs');
const file_info = './File.ini';
fs.readFile(file_info , 'utf8', function(error, data){
if (error) throw error;
console.info(data)
});
测试结果:
Uncaught Error: ENOENT: no such file or directory, open 'C:\Users\Personal\AppData\Local\Temp\2VBLMOYLXHt0I5WQNGDXIPttjAW\File.ini'
注:我是新的电子,这是我第一次使用它的项目,任何帮助将非常感谢
1条答案
按热度按时间iovurdzv1#
我在另一篇文章中找到了解决方案,应该使用
PORTABLE_EXECUTABLE_DIR
来获得正确的路径感谢@ Alexandria 的评论