使用Xamarin for Linux进行开发

JuS*_*chu 72 .net c# mono xamarin

是否可以使用具有相同代码库的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下开发会很好,但是可选的.但在我的所有Google研究之后,我只能找到信息和人们要求支持在Linux下开发而不是Linux.

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

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

har*_*les 46

以防其他人遇到这个问题:情况发生了变化.使用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 :)的一部分:)


mat*_*dev 45

不,Xamarin不适用于Linux.这是几年前Xamarin团队做出的有意识的决定:

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

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

支持Linux的问题在于,我们需要为我们发布的所有位创建一个独立的Mono包装,因为大多数Linux发行版在Mono方面略有不同.

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

也许我们只支持单个发行版和单个版本,这更接近我们今天在Windows/Mac上所做的工作.

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

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

  • 似乎Miguel de Icaza的团队决定[支持Xamarin for linux](https://www.reddit.com/r/programmerchat/comments/4dxpcp/i_am_miguel_de_icaza_i_started_xamarin_mono_gnome/d1vdfwz/):) (6认同)
  • @JuSchu Mono不支持iOS和Android.这就是为什么Xamarin将MonoTouch改名为Xamarin.iOS和Mono for Android改为Xamarin.Android的原因.而.NET/Mono并不旨在允许您使用一个代码库来支持所有平台.您可以共享代码,但不要梦想共享每一行. (4认同)

Bru*_*res 8

似乎Xamarin Forms有可能在Linux发行版上工作.在这个reddit线程中, Miguel de Icaza说:

我们的一些团队成员实际上是在Linux中开发的.我们之前从未发布Linux工具的原因是因为我们收取了大量资金,人们会理所当然地希望软件得到完全支持.我们已经足够让我们的Mac和Windows用户满意了,添加未知数量的Linux发行版听起来像是一项艰巨的任务.现在我们正在开源SDK并且如果某些内容在特定的Linux配置下无效,我将不再感到难过,我将很乐意发布Linux版本.

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


Gab*_*ier 5

是的,从 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