【问题标题】:Using mono assemblies from the .NET CoreCLR使用 .NET CoreCLR 中的单声道程序集
【发布时间】:2016-02-05 14:28:44
【问题描述】:

我需要使用一个尚不支持 CoreCLR 的库(具体来说是 RabbitMQ.Client)。是否可以从 CoreCLR 可执行文件内部在 Linux 系统上使用该库的基于单声道的端口?如果有,是如何实现的?

【问题讨论】:

    标签: linux mono dnx .net-core coreclr


    【解决方案1】:

    在二进制级别是不可能的(除非使用适当的 PCL 配置文件)。 .NET Core 有一种不同的方法来排列程序集中的类,因此桌面 .NET Framework 上的一些程序集被分解为更小的程序集,并且类型被移动。由于此类更改,桌面目标程序集(来自 .NET 或 Mono)将无法在 .NET Core 上运行。

    但这显然在源代码级别是可能的,因为有人尝试将 Mono 的 WinForms 移植到 .NET Core,

    http://forums.dotnetfoundation.org/t/anyone-porting-winforms-mono-to-net-core/898/4

    一旦创建了一个新的 .NET Core 库项目,源文件应该能够被继承(有一些修改甚至没有)。

    但是,.NET Core 发展得太快了,这种尝试现在可能已经过时了。任何想在这个领域探索的人都可以按照这个例子再试一次。祝你好运。

    【讨论】:

    • 谢谢...如果我着手将库从 Mono 移植到 CoreCLR,这些信息可能会派上用场。但我的问题实际上是关于我是否可以在 CoreCLR 中“按原样”使用现有的 Mono 程序集,或者将代码移植到 CoreCLR 项目并重新构建是绝对必要的。
    • 这是非常不可能的,因为 .NET Core 具有不同的程序集层次结构,所以引用发生了变化,类型也被移动了。一些 PCL 可能有效,但经典类库不会。
    • 好的,谢谢。请更新您的答案以反映我们在这些 cmets 中讨论的内容,我会继续接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多