在多个平台上共享代码

这些文章介绍了跨平台共享代码的不同选项,包括 Windows、Android、iOS 等。

代码共享概述

了解 Xamarin 项目的不同代码共享选项,包括 .NET Standard 库和共享项目。 也支持可移植类库,但是它们被视为弃用,转而支持 .NET Standard。

.NET Standard

.NET Standard 是跨平台共享代码的首选选项。 代码是根据特定版本构建的(2.0 提供了与现有 .NET Framework 代码的最佳 API 兼容性),然后,支持该级别或更高级别的其他项目可以使用该代码。 Visual Studio 2019 和 Visual Studio 2019 for Mac 均支持 .NET Standard 项目。

共享项目

使用共享项目,可以编写由多个不同的应用程序项目引用的通用代码。 此代码作为每个引用项目的一部分进行编译,并且可以包含编译器指令以帮助将特定于平台的功能合并到共享代码库中。 本文讨论共享项目的工作原理以及如何在 Xamarin 项目中创建和使用共享项目。

可移植类库

可移植类库项目支持构建和分发包含共享代码的程序集,以便在多个平台上运行。 要创建可移植类库(简称“PCL”),首先要选择目标平台,然后根据为这些平台定义的配置文件中可用的 .NET Framework 子集编写代码。 在最新版本的 Visual Studio 中,PCL 已被视为弃用;建议开发人员改用 .NET Standard 2.0。

NuGet 项目:用于代码共享的多平台库

NuGet 包可以从 PCL 或 .NET 标准项目中自动生成;共享项目可以使用单独的 NuGet 项目类型打包成“诱导转向”NuGet 包。 本节介绍如何为每种代码共享方案创建 NuGet 包。

手动创建适用于 Xamarin 的 NuGet 包

创建与 Xamarin 平台配合使用的 NuGet 包的提示。

在跨平台 Xamarin 项目中使用 C/C++ 库

通过此技术,可以分离 C/C++ 库的演变、NuGet 中的 C# 绑定和 Xamarin 应用程序。 功能由本机平台 C/C++ 库提供,但所有特定平台的代码都与最终的 Xamarin 应用程序隔离,从而在不重复代码的情况下实现尽可能高的性能。