gpt4 book ai didi

IronRuby - 如何要求没有强名称的 .NET 程序集?

转载 作者:行者123 更新时间:2023-12-04 05:34:23 25 4
gpt4 key购买 nike

This page在 IronRuby 帮助网站上谈到能够“要求”一些众所周知的程序集,例如 System.Windows.Forms 而无需启动整个“ah-come-on-gimme-a-break-here-you-cannot -be-serious' 程序集的强名称。

在文档中它说:

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

但是当我尝试相同的“要求”时,我得到了这个:
>>> require "System.Windows.Forms"
IronRuby.Libraries:0:in 'require': no such file to load -- System.Windows.Forms (LoadError)
from :0:in 'Initialize##1'

我可能做错了什么?会不会是设置问题?我看不到文档中提到的“加载路径上的 libs 目录”。文档有错吗?

谢谢。

最佳答案

这是因为 IronRuby 开发人员编写了一堆包装脚本。

查看 <your ironruby install path>\lib\ironruby你会看到 System.Windows.Forms.rb , System.Drawing.rb等等。

当你这样做时会发生什么 require 'System.Windows.Forms'是 IronRuby 找到该 rb 文件并运行它。该文件中的代码只是为您执行完整的强命名要求。

如果您想加载他们尚未为其编写包装器的其他 dll,您有 3 个选择:

  • 需要 dll 的完整路径(例如 c:\program files\whatever\whatever\blah.dll )
  • 需要强名称(这仅适用于 GAC 或 IronRuby 可以在其中找到 dll 的其他地方)
  • 使用 load_assembly - 这是最方便的,但是IIRC 它将dll 加载到LoadFrom上下文,而不是 Load语境。
    如果你不明白这意味着什么,那么基本上它在测试中没问题,但不要在生产中这样做:-)
  • 关于IronRuby - 如何要求没有强名称的 .NET 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2193984/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com