使用Xamarin for Linux进行开发

时间:2016-04-08 06:00:22

标签: c# .net xamarin mono

是否可以使用具有相同代码库的Xamarin开发和构建Linux应用程序?
使用Ubuntu几年后,我的主操作系统现在又是Windows。但这并非不可能,我可以切换到Mac。

Rigth现在我对Qt有一点经验,没有Xamarin的经验。 使用Qt,您可以在Windows,Linux和Mac以及Windows,Linux,Mac,iOS,Android,Windows Mobile等开发......他们非常清楚这一点。 由于Xamarin现在是免费和开源的,我仍然没有Qt的经验,我正在考虑尝试Xamarin进行跨平台开发而不是Qt。

无法发布我的Linux软件对我来说是一个破坏者。能够在Linux下开发会很好,但是可选的。 但在我的所有谷歌研究之后,我只能找到信息和人们要求支持在Linux下开发而不是Linux。

据我所知,单独使用Mono不应该是一个问题。但据我所知,Xamarin> Mono和我在Mono中得不到任何我可以进入Xamarin的东西。 我也不确定未来Mono的支持程度如何。对我来说,看起来Xamarin对于微软而言比Mono本身更为重要。 我不确定它是否可能,因为Xamarin是基于Mono的,但是有可能,微软在某种程度上决定不支持Mono与.NET的兼容性与Xamarin一样,甚至完全取消单声道Mono吗?

所以我正在为我可以依赖的所有桌面和移动平台寻找一个单独的框架,我想知道在我更深入之前,Xamarin和/或Mono和/或Xamarin + Mono是否可以替代Qt在这两种解决方案中的任何一种。

7 个答案:

答案 0 :(得分:43)

不,Xamarin不适用于Linux。这是几年前由Xamarin团队制作的conscious decision

  

Miguel de Icaza 2011-08-04 11:52:37 UTC

     

我们在这里面临质量保证问题。

     

支持Linux的问题是我们需要创建一个   独立的Mono包装,适用于我们最常出售的所有钻头   对于Mono,Linux发行版略有不同。

     

这也意味着如果我们宣传“Linux”,我们需要QA十几个   由于不同的Linux发行版和不同的组合   每个发行版的不同版本。

     

也许我们只支持一个发行版和一个发行版   版本,更接近我们今天在Windows / Mac上所做的事情。

为了澄清,Xamarin产品系列不适用于Linux(Xamarin Studio,Xamarin.iOS和Xamarin.Android),但Xamarin Studio的基础MonoDevelop和跨平台.NET运行时Mono绝对是。

您可以使用MonoDevelop构建桌面软件。 MonoDevelop网站有很多关于入门的说明:

答案 1 :(得分:28)

以防其他人遇到这个问题:情况已经发生变化。使用Xamarin.Forms 3.0,支持Gtk#(此时预览)。因此,启用了完整的Linux GUI支持。

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/gtk?tabs=vswin

所以,Xamarin现在涵盖:

  • 的Android
  • 的iOS
  • Windows Mobile
  • Windows桌面应用程序
  • Linux Gtk桌面应用程序

唯一需要的东西:JS / HTML5 Web App目标平台,作为Xamarin的一部分:)

答案 2 :(得分:8)

似乎Xamarin Forms有可能在Linux发行版上工作。在此reddit thread Miguel de Icaza中说:

  

我们的一些团队成员实际上是在Linux中开发的。我们之所以这样做   从未发布Linux工具是因为我们收费很多   金钱和人们都理所当然地期望软件是完全的   支持的。我们已经足够让我们的Mac和Windows用户满意了   添加未知数量的Linux发行版听起来很难   任务。现在我们正在开源SDK,我不再会感觉到   如果某些东西在特定的Linux配置下不起作用,那就很糟糕   我很乐意发布Linux版本。

那就是:Forms是一个开源工具,这一事实目前开启了这种可能性。

答案 3 :(得分:4)

https://github.com/0xFireball/xamarin-android-linux

正如matthewrdev所说,Xamarin.Studio,Xamarin.iOS和Xamarin.Android都没有“正式”支持;然而,Xamarin.iOS无论如何都使用虚拟仿真器(我认为Xamarin.iOS不会在Linux上运行),但是对于Xamarin Studio(Linux上的MonoDevelop,或Jetbrain的Riders(如何在linux上运行)链接中也提供没有官方支持)可以在Linux上作为Xamarin.Studio的alt运行,我分享的链接解释了如何在linux上安装Xamarin.Android,所以只需要Xamarin.iOS你需要迁移或者双启动或某事,我希望有所帮助!(我停止使用Xamarin我自己,但是,这个环境有助于在Linux上开发Xamarin!)

答案 4 :(得分:2)

是的,截至2018年中,可以使用“ Xamarin.Forms”库开发针对Windows / mac / linux / android / ios的跨平台GUI应用程序。基本上,您有一个跨平台代码的共享库项目(UI和其他跨平台的东西),每个平台一个项目的特定于平台的代码(Xamarin.Forms每个平台都有一个后端实现。在Linux上,这是使用GTK )。

但是,使用MonoDevelop,您只能开发/构建跨平台项目和该应用程序的Linux特定项目。您仍然需要使用Visual Studio或Rider为其他平台进行开发/构建。

请参阅以下答案: https://stackoverflow.com/a/53317021/298005

答案 5 :(得分:0)

GTK 被列为 Xamarin.Forms 支持的平台/后端之一,它允许为 Linux(以及通过同一 GTK 项目的 macOS 和 Windows)构建应用程序。尽管自 2018/2019 年和 Xamarin.Forms 3.0 以来似乎没有太多发展。尝试运行 2 个具有基本 UI 的应用,并在 Windows/macOS 上比较 GTK 支持(与 WPF 和 Xamarin.mac 后端相比),发现 GTK 不值得追求(基本场景失败)。

您可以在 https://github.com/jsuarezruiz/forms-gtk-progress/blob/master/Status.md

跟踪 GTK 进度

答案 6 :(得分:0)

在 Ubuntu 20.04 上,您可以使用 XSP4 运行 ASP.Net MVC 5 应用程序。打开您安装 MVC 应用程序的控制台,其中所有文件夹,Global.asax,Web.config,... 并运行“xsp4 --port 80”或您喜欢和可用的任何其他端口。 XSP4 是一个独立的 Web 服务器,不需要运行 Apache。 此外,对于 C# 开发人员,即使 MonoDevelop 不在 Ubuntu 20.04 中,我不知道为什么,您仍然可以安装它并调试您的 ASP.Net MVC 应用程序。您还可以使用 MonoDevelop 调试任何 WinForm 和控制台应用程序。您也可以使用单声道运行您的所有应用程序。