基于 Xamarin 的 Mac OSX 应用程序部署大小

Xamarin based Mac OSX app deployment size

我正在考虑使用 Xamarin.Mac 平台将基于 .NET 的桌面应用程序移植到 Mac。我似乎找不到有关生成的应用程序的部署大小的任何信息。它是否像 Xamarin iOS 开发,即 C# 代码本地编译成 mac 代码,我不必担心分发 .NET 运行时?如果不是,那么我需要与我的应用程序一起分发的 .net 运行时有多大?

Xamarin.Mac 应用程序是独立的,不需要安装单独的 Mono 框架。只有您的应用程序使用的框架部分包含在应用程序包中,以保持尽可能小的大小。

A x86_64 Xamarin.Mac Cocca Hello World Xamarin.Mac 基于移动框架 的应用程序,链接器设置为:

  • 不要 Link: ~48mb
  • Link 仅限框架 SDK:~20mb
  • Link全部:~20mb

注意:尺寸基于 Xamarin.Mac 2.9.2.81

注意:使用其他 Xamarin.Mac 框架当然会产生稍大的包大小...

注意:这是一个 什么都不做 的应用程序,所以一旦您开始添加资产、内容、代码、外部包等...您的应用程序大小将会增加。

Xamarin.Mac 应用程序不会像 Xamarin.iOS 应用程序那样通过 LLVM 编译成位代码 and/or 机器码。有一些 old 电子邮件线程四处飘荡,这是与 AOTing 一起开始研究的,但我 假设 需求不足与工程时间永远不需要有道理。

注意:可以使用启用 LLVM 的自定义 OS-X Mono 构建,但我还没有在基于 x86_64 的 Mono OS- 中这样做X apps for App Store distribution, only local app for private distribution.这一切都是在 Xamarin Studio 之外完成的,而不是 supported 配置。也就是说,如果您在共享的 OS-X 应用程序中使用 Xamarin.Mac Mobile Framework,现在 xamarin-macios 开始开源统一框架,您可以连接 Mono/LLVM-based 构建环境,但同样不是 Xamarin 支持的配置。

2018 年 12 月,Xamarin.Forms + Xamarin.Mac 为具有 5 个以上表单的应用提供 16Mb 的捆绑包大小。这是一个独立的应用程序,不依赖于 Mono 或安装的任何框架。