我试图用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能够创建单个可执行文件,但是如果我试图创建一个安装文件,这就是我得到的错误:
=== 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库,而在目标计算机中,我无法执行它。
我认为这个错误与没有关闭sqlite的连接有关,但是我可能遗漏了其他的东西。
谢谢
发布于 2014-11-03 16:40:23
我知道这很旧,但我也犯了同样的错误。一旦我关闭了反病毒软件,我的一切运行都很完美。我的安装文件是按其应有的方式创建和运行的。
https://stackoverflow.com/questions/15919933
复制相似问题