2013-04-10 80 views
1

我正在尝试将ocra的ruby + qtruby + sqlite3应用程序打包到Windows安装程序中。使用ocra和sqlite生成INNOSetup安装程序时出错

Everithing进展顺利,直到我添加连接到数据库的代码。

下面是摘录:

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能够创建一个可执行文件,但如果我尝试创建一个安装文件,这是我的错误:

=== Running InnoSetup compiler ISCC                      
Error in D:\Workspaces\Ruby\TestGui\ocratemp.iss: Impossibile accedere al file. Il file Þ utilizzato da un altro processo. 
Compile aborted.                           
ERROR: InnoSetup installer creation failed: ISCC failed to run. Is the InnoSetup directory in your PATH?     
rake aborted!                            

的错误是在意大利,很抱歉,但它翻译为“无法访问文件,该文件正在被另一个进程使用

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

ocra --chdir-first --no-lzma --no-autoload --innosetup testGui.iss gui.rb src/db/development.db src/config/database.yml 

如果我评论远的代码连接到源码块,正确地创建安装程序,我可以正确地测试机器上使用。 如果我将退出,如果...块连接到sqlite之前生成的可执行文件/安装程序缺少sqlite库,并在目标机器我不能执行它。

我认为这个错误与sqlite的连接没有关闭有关,但也许我错过了其他的东西。

谢谢

+0

你可以发布你用来运行ocra的命令吗? – 2013-04-10 07:55:12

+0

是的,你说得对,对不起。我编辑了帖子 – Antonio 2013-04-10 08:20:01

+0

您是否尝试过ProcessMonitor(或类似的程序)来找出它抱怨的文件?如果您从ocra命令行中省略src/db/development.db,它会起作用吗? – 2013-04-10 10:12:13

回答

0

我知道这是旧的,但我只是有这个相同的错误。一旦我关闭了反病毒软件,我已经运行了一切正常工作。我的安装文件被创建并运行,因为它应该。