Ruby 使用ocra和sqlite生成INNOSetup安装程序时出错

Ruby 使用ocra和sqlite生成INNOSetup安装程序时出错,ruby,sqlite,inno-setup,ocra,Ruby,Sqlite,Inno Setup,Ocra,我正在尝试将带有ocra的ruby+qtruby+sqlite3应用程序打包到windows安装程序中 一切都进行得很顺利,直到我添加了连接到数据库的代码 以下是片段: require 'Qt4' require 'rubygems' require 'active_record' dbconfig = YAML::load(File.open('src/config/database.yml'))['development'] ActiveRecord::Base.establish_con

我正在尝试将带有ocra的ruby+qtruby+sqlite3应用程序打包到windows安装程序中

一切都进行得很顺利,直到我添加了连接到数据库的代码

以下是片段:

require 'Qt4'
require 'rubygems'
require 'active_record'

dbconfig = YAML::load(File.open('src/config/database.yml'))['development']
ActiveRecord::Base.establish_connection(
:adapter => dbconfig['adapter'],
:database => dbconfig['database']
)

class Category < ActiveRecord::Base
end

Category.find(:all)

exit if Object.const_defined?(:Ocra)
...
抱歉,错误是意大利语,但它转换为“无法访问该文件。该文件当前正由另一个进程使用。”

这是用于生成安装程序的命令:

ocra --chdir-first --no-lzma --no-autoload --innosetup testGui.iss gui.rb src/db/development.db src/config/database.yml 
如果我注释掉了连接到sqlite的代码块,那么安装程序就正确创建了,并且可以在测试机器上正确使用。 如果我移动出口,如果。。。在连接到sqlite之前阻塞生成的可执行文件/安装程序缺少sqlite库,在目标机器中我无法执行它

我认为这个错误与未关闭到sqlite的连接有关,但可能我遗漏了其他内容


谢谢

我知道这很旧,但我也犯了同样的错误。一旦我关闭了反病毒软件,我已经运行一切工作完美。我的安装文件已创建,并正常运行

你可以发布你用来运行ocra的命令吗?是的,你是对的,对不起。我编辑了PostMonitor。您是否尝试过ProcessMonitor(或类似程序)来找出它抱怨的文件?如果您从ocra命令行中省略src/db/development.db,它可以工作吗?如果我省略db文件,它可以正常工作。我尝试了ProcessMonitor,但没有看到development.db或ocratemp.iss的任何内容。在调用#exit之前,您是否尝试过显式地释放/关闭与SQLite的连接?
ocra --chdir-first --no-lzma --no-autoload --innosetup testGui.iss gui.rb src/db/development.db src/config/database.yml