安装rubyinstaller-1.9.2-p136后运行watir脚本时出现错误“msvcrt-ruby18.dll缺失”

时间:2011-01-01 00:02:15

标签: ruby watir

安装rubyinstaller-1.9.2-p136并在cmd提示符下运行以下命令。

gem update --system
宝石安装watir。

命令已成功执行。但是,当我运行带有以下内容的ruby脚本时,我收到错误“程序无法启动,因为您的计算机缺少msvcrt-ruby18.dll。请尝试重新安装该程序以解决此问题。”我试过多次重新安装,但没有运气。               我谷歌周围找到了msvcrt-ruby18.dll文件。但我不知道我应该怎么做。请帮忙!

我的ruby文件的内容:


要求'watir'
ie = Watir :: IE.new
ie.goto('http://www.google.com')

4 个答案:

答案 0 :(得分:3)

您可能安装了一些针对msvcrt-ruby18.dll构建的二进制gem。解决方案是

  1. 安装DevKit,以便您拥有在本地构建本机代码的环境。
  2. 卸载坏宝石(在需要时导致此对话框)
  3. 重新安装,但强制进行本地编译,即

    gem install gemname --platform = ruby​​

答案 1 :(得分:1)

您是否尝试过使用Ruby 1.8.6?我在Google Groups for Watir中看到了推荐的内容。

另外,我在ruby forum thread中的一个问题中看到了对此的引用,特别是在底部。如果您刚刚开始,那么可能不需要支持最新版本的Ruby,这对使用以前版本的Ruby编译的库存在一些问题。

  

你可以定义一个gem来定位一个Ruby版本(使用gem   spec required_ruby_version属性)但是,你无法生成一个   二进制gem,目标是1.8.x和1.9.x系列的Ruby。

     

1.8.x和1.9.x之间存在二进制差异(不同的C-API,   制作这些预编译扩展的不同VM等)   不相容的。**

显然,Watir是用1.8.x构建的。另一种方法是使用Vapir,它基于Watir但由于该分支的变化而不向后完全兼容。

答案 2 :(得分:1)

如果您想运行wxRuby,请不要下载ruby18版本。你得到的是:

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

此应用程序已请求Runtime以不寻常的方式终止它。 请联系应用程序的支持团队以获取更多信息。

宝石(wxruby 19)下载并安装得很好。当然,这并不意味着它必然会运行。

答案 3 :(得分:0)

要修复此错误,我们需要注册autoit dll“AutoItX3.dll”。在我的机器中,dll位于C:\ Ruby192 \ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ rautomation-0.6.3 \ ext \ AutoItX。因此,您需要在命令提示符下转到此文件夹并执行“regsvr AutoItX3.dll”。这解决了问题