Ошибка генерации установщика INNOSetup с помощью ocra и sqlite
Я пытаюсь упаковать приложение 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, установщик будет создан правильно, и я смогу правильно использовать его на тестовой машине. Если переместить блок exit if... перед подключением к sqlite, то в полученном исполняемом файле / установщике отсутствуют библиотеки sqlite, и на целевой машине я не могу выполнить его.
Я думаю, что ошибка связана с тем, что соединение с sqlite не закрывается, но, возможно, я что-то упускаю.
Спасибо
1 ответ
Я знаю, что это старый, но у меня была такая же ошибка. Как только я отключил антивирус, у меня все заработало. Мой установочный файл был создан и функционировал как надо.