2011-01-01 2 views
2

Установлен rubyinstaller-1.9.2-p136 и выполнил следующие команды в командной строке cmd.Получение ошибки «msvcrt-ruby18.dll отсутствует» при запуске сценариев watir после установки rubyinstaller-1.9.2-p136

gem update --system
gem install watir.

Команды успешно выполнены. Но когда я запускал ruby-скрипт со следующим содержимым в нем, я получаю сообщение об ошибке «Программа не может запускаться, потому что msvcrt-ruby18.dll отсутствует на вашем компьютере. Попробуйте переустановить программу, чтобы исправить эту проблему». Я попробовал переустанавливая его несколько раз, но не повезло. Я нашел google и нашел файл msvcrt-ruby18.dll. Но я не знаю, что мне с этим делать. Пожалуйста помоги!

Содержание моего файла рубина:


требуют 'Watir'
т = Watir :: IE.new
ie.goto ('http://www.google.com')

ответ

0

Для исправления этой ошибки нам необходимо зарегистрировать файл autoit dll «AutoItX3.dll». В моей машине dll находится в папке C: \ Ruby192 \ lib \ ruby ​​\ gems \ 1.9.1 \ gems \ rautomation-0.6.3 \ ext \ AutoItX. Итак, вам нужно перейти в эту папку в командной строке и выполнить «regsvr AutoItX3.dll». Это устранило проблему

1

Вы пытались перейти на Ruby 1.8.6? Я видел, что это рекомендовано в Google Groups for Watir.

Кроме того, я видел ссылку на это в вопросах об этом в ruby forum thread, особенно в нижней части. Если вы только начинаете, то, вероятно, нет необходимости поддерживать новейшую версию Ruby, которая имеет некоторые проблемы с библиотеками, скомпилированными с предыдущими версиями Ruby.

Вы можете определить драгоценный камень, чтобы быть ориентированы на одной версии Ruby (с использованием драгоценных камней спецификации атрибут required_ruby_version), однако, вы не можете создать двоичный драгоценный камень, который предназначаться как 1.8.x и 1.9.x серии Руби.

Есть бинарные различия между 1.8.x и 1.9.x (различным C-API, другой виртуальной машиной, и т.д.), которые сделали эти скомпилированные расширения несовместимой. **

Видимо, Watir был построенный с 1.8.x. Альтернативой является использование Vapir, основанного на Watir, но не полностью полностью совместимого из-за изменений в этой ветке.

3

Возможно, вы установили некоторые двоичные драгоценные камни, которые были созданы против msvcrt-ruby18.dll. Решением является

  1. установить DevKit так, чтобы у вас была среда для создания собственного кода локально.
  2. Uninstall плохой камень (который вызывает этот диалог, когда require'd)
  3. Установите его, но заставить местную компиляцию, т.е.

    камень установить gemname --platform = рубин

1

Не загружайте версию ruby18, если хотите запустить wxRuby.То, что вы получите это:

C:/Ruby192/lib/ruby/gems/1.9.1/gems/wxruby-2.0.1-x86-mingw32/lib/wxruby2.so: [BUG] Segmentation fault 
ruby 1.9.2p180 (2011-02-18) [i386-mingw32] 

-- control frame ---------- 
c:0011 p:-10361992 s:0034 b:0034 l:000033 d:000033 TOP 
c:0010 p:---- s:0032 b:0032 l:000031 d:000031 CFUNC :require 
c:0009 p:0013 s:0028 b:0028 l:000027 d:000027 METHOD <internal:lib/rubygems/custom_require>:29 
c:0008 p:0011 s:0023 b:0023 l:000022 d:000022 TOP C:/Ruby192/lib/ruby/gems/1.9.1/gems/wxruby-2.0.1-x86-mingw32/lib/wx.rb:12 
c:0007 p:---- s:0020 b:0020 l:000019 d:000019 FINISH 
c:0006 p:---- s:0018 b:0018 l:000017 d:000017 CFUNC :require 
c:0005 p:0073 s:0014 b:0014 l:000010 d:000013 BLOCK <internal:lib/rubygems/custom_require>:33 
c:0004 p:0014 s:0011 b:0011 l:000010 d:000010 METHOD <internal:lib/rubygems/custom_require>:29 
c:0003 p:0011 s:0006 b:0006 l:00175c d:002234 EVAL MinimalRuby.rb:1 
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH 
c:0001 p:0000 s:0002 b:0002 l:00175c d:00175c TOP 
--------------------------- 
-- Ruby level backtrace information ---------------------------------------- 
MinimalRuby.rb:1:in `<main>' 
<internal:lib/rubygems/custom_require>:29:in `require' 
<internal:lib/rubygems/custom_require>:33:in `rescue in require' 
<internal:lib/rubygems/custom_require>:33:in `require' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/wxruby-2.0.1-x86-mingw32/lib/wx.rb:12:in `<top (required)>' 
<internal:lib/rubygems/custom_require>:29:in `require' 
<internal:lib/rubygems/custom_require>:29:in `require' 

[Примечание] Возможно, вы столкнулись с ошибкой в ​​интерпретатором или расширения библиотек Руби. Сообщения об ошибках приветствуются. Для получения дополнительной информации: http://www.ruby-lang.org/bugreport.html

Это приложение попросило Runtime прекратить его необычным способом. Для получения дополнительной информации обратитесь в службу поддержки приложения.

драгоценный камень (wxruby 19) загружен и установлен просто отлично. Конечно, это не означает, что он обязательно будет работать.

Смежные вопросы