我有一个便携式电子应用程序(挤满了:electron-builder + asar,portable build)。我尝试获取应用程序路径,但它返回的是user\temp文件夹中的路径,而不是实际的“.exe”文件
有没有办法获取app.exe的原始路径?
我尝试了以下方法:
- getAppPath()
- __dirname
- require.main.filename
- app-root-path
- 和一些节点模块
我从测试中得到的路径:
C:\Users\xxx\AppData\Local\Temp\xxxxxx.tmp\app
实际的.exe路径(应用程序从哪里启动,我需要什么):
C:\Users\XXX\Documents\test\dist
我刚从电子开始。
7条答案
按热度按时间6rvt4ljy1#
我找到了一个解决办法:使用环境变量(由Electron-Builder创建)
显示App.exe的真实的路径。工程只与电子组装
gk7wooem2#
从主要流程来看:
从渲染器进程:
thigvfpy3#
我在这方面遇到了很多麻烦,最后通过将__dirname替换为'.'来解决这个问题,请参阅下面的工作示例:
j8ag8udp4#
似乎
PORTABLE_EXECUTABLE_FILE
只在某些Electron-Builder配置下工作;特别是,它在部署为可移植目录的应用程序中不起作用。在这种情况下,以下内容将为您获取应用程序根路径:
8i9zcol25#
以上的答案都不适用于我的Windows 10。
process.env.PORTABLE_EXECUTABLE_DIR
返回Temp目录路径。我让它工作使用:
whlutmcx6#
将给予文件的完整路径。
ltskdhd17#
由于上面的方法都不起作用,我不想为此使用外部库,我尝试了以下方法:
您可以使用任何应该存在于顶层或其他任何位置的目录。在我的例子中,我知道在目录的更高一级,必须有一个名为“images”的目录。
这个解决方案在我的开发构建和生产(打包)的情况下有效。
使用这种方法时有什么缺点吗?