我可以在Windows上使用mono的系统数据吗?

时间:2009-03-13 14:46:26

标签: .net dll mono

我有一个Windows WinForms应用程序,它与linux的单声道遥控器进行通信。有可能我得到mono的system.data.dll并在Windows上使用它而不是.net的内置。

我想使用二进制类型的remotingformat,并确保两端都能正确地序列化/反序列化。

3 个答案:

答案 0 :(得分:2)

在不影响Microsoft的.Net安装的情况下,您不太可能实现这一目标。能够帮到你的是,不管你调用什么API,每当CLR尝试加载DLL时,如果存在兼容版本,它将始终从GAC获取它。

WinForms会在几种情况下隐式加载System.Data.dll,CLR会进行GAC检查。如果您使用的是MS版本的WinForms,这将解析为GAC中的MS版本。如果不修改GAC,就无法解决这个问题。

所有MS程序集都使用AFAIK单声道无法复制的私钥进行签名。因此,似乎没有办法让你的DLL在内置的GAC DLL之前加载,因此无法替换它。

答案 1 :(得分:1)

Mono程序集在Windows以及Linux和Mac等上运行良好。出于各种目的,我已经多次使用Mono程序集。

在Windows上使用完整的Mono客户端并不总是可取的,因为它确实具有与.net客户端不同的运行时行为。它与Microsoft CLR的性能和功能并不完全相同(尽管它一直在变得越来越近)。

答案 2 :(得分:0)

如果Mono遵循规范,它应该与MS的二进制兼容。 IIRC就是这样。

如果确实存在问题,为什么不在客户端也使用mono?