Ruby Ocra没有改变工作目录

时间:2015-09-14 16:50:55

标签: ruby ocra

我在我的Ruby代码之上有这些行,并尝试了多种组合,但它们都没有用。

$:.unshift File.dirname($0)
Dir.chdir(File.dirname($0))

我的配置文件与Ocra创建的exe目录相同。该文件由此加载:

cnf = YAML.load_file('config.yml')

但是,该文件不会从所需的同一目录加载。我认为,错误告诉它在exe运行时尝试从临时目录加载它。

error

如何让脚本从与exe相同的目录中加载config.yml文件?

1 个答案:

答案 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中运行