1

ruby + qtruby + sqlite3 アプリケーションを ocra で 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 に接続する前にexit if...ブロックを移動すると、結果の実行可能ファイル/インストーラーに sqlite ライブラリがなく、ターゲット マシンで実行できません。

エラーは sqlite への接続が閉じられていないことに関連していると思いますが、おそらく他に何か不足しています。

ありがとう

4

1 に答える 1

0

これは古いことは知っていますが、同じエラーが発生しました。ウイルス対策ソフトウェアを停止するとすぐに、実行していたすべてが完全に機能しました。インストール ファイルが作成され、正常に機能しました。

于 2014-11-03T16:40:23.383 に答える