5

IronRuby ヘルプ Web サイトのこのページでは、「 ah-come-on-gimme-a-break-here-you -cannot-be-serious ' アセンブリの厳密な名前。

ドキュメントでは、次のように述べています。

>>> require "System.Windows.Forms"  
=> true  

しかし、同じ「require」を試すと、次のようになります。

>>> require "System.Windows.Forms"
IronRuby.Libraries:0:in 'require': no such file to load -- System.Windows.Forms (LoadError) 
        from :0:in 'Initialize##1'

私は何を間違っているのでしょうか?設定の問題でしょうか?ドキュメントに記載されているこの「ロード パス上の libs ディレクトリ」が表示されません。ドキュメントは間違っていますか?

ありがとう。

4

2 に答える 2

7

これが機能するのは、IronRuby の担当者が多数のラッパー スクリプトを作成したためです。

中をのぞくと、など<your ironruby install path>\lib\ironrubyが表示されます。System.Windows.Forms.rbSystem.Drawing.rb

そうすると何が起こるかとrequire 'System.Windows.Forms'いうと、IronRuby がその rb ファイルを見つけて実行するということです。そのファイル内のコードは、厳密な名前の完全な require を実行するだけです。

ラッパーを作成していない他の dll をロードする場合は、次の 3 つのオプションがあります。

  1. dll へのフル パスが必要です (例: c:\program files\whatever\whatever\blah.dll)

  2. 厳密な名前が必要です (これは、GAC または IronRuby が dll を見つけることができる場所にある場合にのみ機能します)

  3. use load_assembly- これは最も便利ですが、IIRC はLoadFromコンテキストではなくコンテキストにdll をロードしLoadます。
    それが何を意味するのか理解できない場合は、基本的にテストでは問題ありませんが、本番環境では行わないでください:-)

于 2010-02-28T19:55:33.853 に答える
2

これセットアップの問題でした。IronRuby のダウンロードに ir.exe のコピーが 2 つあり、間違ったものを使用していました。

于 2010-02-03T20:52:00.603 に答える