Получение ошибки «отсутствует msvcrt-ruby18.dll» при запуске сценариев watir после установки rubyinstaller-1.9.2-p136 - PullRequest
2 голосов
/ 01 января 2011

Установил rubyinstaller-1.9.2-p136 и запустил следующие команды в командной строке:

gem update --system
gem install watir.

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

Содержимое моего файла ruby:


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

Ответы [ 4 ]

3 голосов
/ 01 января 2011

Вы, вероятно, установили несколько бинарных гемов, которые были собраны с msvcrt-ruby18.dll.Решение состоит в том, чтобы

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

    gem install gemname --platform = ruby ​​

1 голос
/ 09 мая 2011

Не загружайте версию 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'

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

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

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

1 голос
/ 01 января 2011

Вы пытались перейти на Ruby 1.8.6?Я видел это рекомендованное в Группах Google для Watir .

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

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

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

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

0 голосов
/ 16 ноября 2011

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

...