我在我的Ruby代码之上有这些行,并尝试了多种组合,但它们都没有用。
$:.unshift File.dirname($0)
Dir.chdir(File.dirname($0))
我的配置文件与Ocra创建的exe目录相同。该文件由此加载:
cnf = YAML.load_file('config.yml')
但是,该文件不会从所需的同一目录加载。我认为,错误告诉它在exe运行时尝试从临时目录加载它。
如何让脚本从与exe相同的目录中加载config.yml文件?
答案 0 :(得分:1)
Ocra使用环境变量来存储.exe的位置
ENV["OCRA_EXECUTABLE"]
要访问与ruby_script.exe相关的文件,您必须将工作更改为该文件。以下是一些可能适合您的代码:
Dir.chdir File.dirname(ENV["OCRA_EXECUTABLE"]) if ENV["OCRA_EXECUTABLE"]
拥有" if ENV["OCRA_EXECUTABLE"]
"在此行的末尾使脚本在没有ocra作为ruby文件(.rb)的情况下运行时不会抛出错误。它只是检查这个ENV是否存在,如果是,那么你的程序在你的ocra EXE中运行