0

我是整个单声道/Linux 场景的新手,但找不到一个简单问题的答案:给定一个仅使用单声道支持的库/函数(无意)的 .net 应用程序:你能在 linux 上运行它吗使用单声道而不必使用单声道编译器重新编译它?

如果这是非常基本的,我很抱歉,但是有了周围的所有信息,我只会越来越困惑。

-- 仅供参考:我将尝试使用运行 debian 和 mono 的树莓派来运行名为 domdomsoft mangadownloader 的应用程序和用作传输文件的 httpd 服务器的应用程序。这两个应用程序都是在 .net 中构建的,并且看起来非常基础,所以我猜他们没有使用 mono 不支持的任何代码。

由于我没有任何源代码,我将无法重新编译任何东西。所以我希望我可以在树莓派上使用单声道运行.exe。

4

2 回答 2

1

是的,您将能够做到,这就是 mono & .net 背后的全部意义,只要您不使用已实现的库之外的库,它就应该可以正常工作(因为您可以从字面上拖放为 .net 生成的 exe &在不接触它的情况下在 linux 单声道盒子上使用它)。

然而,看起来“基本”的应用程序与它没有任何关系,不使用任何非单一功能。例如,如果它是用 WPF 制作的,即使它只是一个带有 1 个文本框和一个按钮的简单窗口,它也不会运行,因此您需要尝试查看。如果您访问单声道网站,您还可以使用将二进制文件作为输入的工具,并告诉您它是否会在单声道上运行,如果这对您来说更容易的话。

于 2013-09-08T23:51:00.880 回答
0

“我没有任何源代码,我无法重新编译任何东西”。仅此声明就使您的愿望几乎无法实现。

Mono 和 .NET 都是支持 MSIL/CIL 执行的 CLR 实现。因此,如果一个应用程序在 Windows 上针对 .NET 编译为 MSIL,Mono 就有机会毫无问题地执行它。但是这种完美的端口有一些严格的要求,

  • 此应用程序使用一组已经由 Mono 实现的 API,http://www.mono-project.com/Compatibility。如页面所示,使用 MoMA 您可以在 API 级别进行检查。
  • 此应用程序本身以跨平台方式设计(这意味着它不应假定自己在 .NET 和 Windows 上运行)。大多数应用程序由于设计不佳而无法在 Mono 上运行。http://www.mono-project.com/Guidelines:Application_Portability该页面列出了一个好的设计应该注意的所有明显点。
  • 此应用程序还必须适应 Mono 和 .NET 的不兼容点。它很少发生,但也可能导致问题。

从上面可以看出,即使有应用程序的完整源代码,将其移植到 Mono 对开发人员来说也绝非易事。因此,在您手头没有源代码的情况下,应用程序最不可能完美地在 Mono 上运行。

于 2013-09-09T02:33:26.007 回答