【问题标题】:Can mono run framework.net compiled applications (from a VS env)可以单声道运行 framework.net 编译的应用程序(来自 VS 环境)
【发布时间】:2011-12-01 03:13:29
【问题描述】:

我阅读了很多关于使用 mono 运行 .net 代码的问题,但我总是遇到同样的问题。我现在正在构建一个新应用程序,所以我最好直接开始并采取好的方向:

我可以在 Visual C# Express 或 Visual Basic Express 中开发应用程序,使用他们拥有的编译器从 Microsoft 环境编译它,然后在 Linux 上使用 MONO 运行该应用程序吗?

或者我是否必须从头开始使用单声道编译器(或之后将我的 MS 项目转换为单声道)才能在 Linux 上使用 Mono 框架使用我的 .net 应用程序。

Linux/Mac 支持对于我的应用开发来说并不是必须的,但我想从一开始就获得它。

谢谢


关于 api:

我正在使用 WinForms、加密、全球化、SQLClient,但可能仅此而已,Mono 专家有什么可以告诉我不要一开始就使用的吗?

哦,我使用 My 命名空间来处理各种事情,例如获取计算机名称、登录用户名、资源、设置等...

【问题讨论】:

  • 您应该返回并接受您提出的旧问题的答案。如果它变得更低,您可能很难让人们回答您的问题。
  • 是的,我不知道为什么我有这么多问题,没有答案,对不起...我通常标记它们:S
  • 现在我知道了,我几乎没有问题,我唯一的问题,大部分都没有答案...... :)

标签: c# .net vb.net mono


【解决方案1】:

通常是的,这是可行的。

问题不在于重新编译,而在于可用的本机 API 和库。如果您添加本机互操作,则您使用的库也必须在 Linux 上可用,这显然不适用于 windows 库。

某些托管库根本不可用 (WPF),或者不完整 (WCF)。

Mono 有一个 WinForms 实现,但它看起来很陌生,因为它不使用本机控件。这意味着代码可以在其他平台上运行,但用户体验不会很好。

【讨论】:

  • My.Computer.Identity.WindowsPrincipal 会发生什么情况,它在另一个平台上是否正确移植? SQL Native 客户端 (System.Data.SqlClient) 可以在 Windows 以外的其他平台上工作吗?显然,我永远不会在 linux 上安装 MS Sql Server,但如果我什至无法使用该 api 连接到 Windows 机器,那么单声道就没用了
【解决方案2】:

.Net 语言的所有编译器都编译为标准 MSIL,可以由任何兼容的实现执行,包括 Mono。

但是,Microsoft.Net 和 Visual Studio 中包含的某些程序集不适用于非 Windows 平台上的 Mono。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    相关资源
    最近更新 更多