【发布时间】:2022-01-22 10:08:47
【问题描述】:
背景
我有一个非常小的 Elixir 桌面应用程序,名为 hello-desktop:
https://github.com/Fl4m3Ph03n1x/hello-desktop
我使用mix release 在 Windows 10 VM 中编译和发布。
现在在另一台 Windows 10 机器上,我下载了 repo,并为 Windows 安装了 erlang:
我的想法是,由于我创建了已安装所有内容的版本,因此我根本不需要在新机器上安装任何东西来运行我的hello.bat。
releases: [
hello: [
include_executables_for: [:windows],
applications: [runtime_tools: :permanent]
]
]
但是,我仍然继续使用 OTP 24 安装 erlang,以将其作为可能的错误丢弃。
问题
这里的问题是,当我在第二个虚拟机中运行mix release 创建的 bat 文件时,出现以下错误:
.\hello.bat start
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
这非常令人困惑。它在寻找什么路径? 从理论上讲,VM 应该是我所需要的。我不需要安装 Elixir。老实说,因为我相信我正在创建包含所有内容的版本,所以我什至不需要安装 erlang。
我做错了什么?
【问题讨论】:
-
这闻起来像发布文件的相对路径中的错误,我建议在 elixir repo 中查找问题或在那里创建一个,Windows 平台可能有更多错误,因为它维护得不是很好。
-
erlang 在 PATH 中吗? Windows 可能对用户 shell PATH 和批处理文件 PATH 有点奇怪。这个错误很烦人,因为它不会告诉你缺少的 PATH。检查您的环境变量,或修改
.bat以 ECHO 出当前 PATH -
但令人困惑的是,为什么我首先需要 erlang?默认情况下,该版本应该包含所有内容,甚至是 erlang 运行时版本,对吗?