对Xamarin.Forms的支持于2024年5月1日结束,根据Xamarin支持政策:
Xamarin支持于2024年5月1日结束,包括Xamarin.forms在内的所有Xamarin SDK。
Xamarin.Forms于2022年5月作为.NET 6的一部分由.NET MAUI继承,目前如.NET MAUI支持政策所述支持。遵循官方升级指南,将您的Xamarin应用程序带入最新版本的.NET。
对于我们所有的开发人员和贡献者,非常感谢您成为我们Xamarin社区的一部分。我们将在.net Maui中见到您!
Xamarin.Forms提供了一种在C#中快速构建iOS,Android,Windows和MacOS的本机应用程序的方法。
在https://www.xamarin.com/forms上阅读有关该平台的更多信息。
| 平台/功能 | 软件包名称 | 稳定的 | 预发行 | 夜间饲料azure(主分支) |
|---|---|---|---|---|
| 核 | Xamarin.Forms | |||
| 应用 | Xamarin.Forms.AppLinks | |||
| 地图 | Xamarin.Forms.Maps | |||
| 地图 | Xamarin.Forms.Maps.GTK | |||
| 地图。wpf | Xamarin.Forms.Maps.WPF | |||
| 页面 | Xamarin.Forms.Pages | |||
| 页面 | Xamarin.Forms.Pages.Azure | |||
| platform.gtk | Xamarin.Forms.Platform.GTK | |||
| platform.wpf | Xamarin.Forms.Platform.WPF | |||
| visual.material | Xamarin.Forms.Visual.Material |
如果您想使用最新的开发式构建,则应阅读此博客文章:
将夜间馈送添加到nuget源或将nuget.config添加到您的应用程序(将其放置在解决方案文件所在的同一目录中),并带有以下内容:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< configuration >
< packageSources >
< clear />
< add key = " xamarin-ci " value = " https://aka.ms/xf-nightly/index.json " />
< add key = " NuGet.org " value = " https://api.nuget.org/v3/index.json " />
</ packageSources >
</ configuration >注意:除非您希望每晚的软件包可能开始为机器上的其他应用程序恢复,否则该nuget.config应该与您的应用程序有关。
更改您的应用程序的依赖项以获得*以获取最新版本。
对于下面的两种方法,您都必须添加此Nuget Feed,以使其成功。请参阅此文档页面以了解如何。
开发Xamarin.forms需要VS 2019+。如果您尚未安装它,则可以在此处下载。 VS 2019+社区是完全免费的。如果您是首次安装VS 2019+,请选择“自定义”安装类型,然后从功能列表中选择以下内容以安装:
Individual Components > .NET > .NET Framework 4.6.1 SDK, .NET Framework 4.6.1 targeting pack, .NET Framework 4.7.2 SDK, .NET Framework 4.7.2 targeting pack 。Individual Components > SDKs, libraries, and frameworks > Windows 10 SDK (10.0.19041.0), Windows 10 SDK (10.0.18362.0), Windows 10 SDK (10.0.16299.0) 。Individual Components > Development Activities > Xamarin Remoted SimulatorIndividual Components > Emulators > Hyper-V Intel Hardware Accelerated Execution Manager (HAXM)开发Xamarin.Forms需要Android 10.0 API 29 SDK和Android 9.0 API 28 SDK。可以使用Xamarin Android SDK Manager安装它们。
我们还建议安装Xamarin Android设备管理器。这将使用上面安装的HAXM工具,并允许您配置模仿Android设备的Android虚拟设备(AVD)。如果您已经安装了VS 2019+,则可以通过通过Visual Studio Installer修改VS 2019+安装来验证这些功能是否已安装。
如果您遇到缺少SDK的错误,则可以运行我们的配置脚本。请注意,运行整个脚本可能需要一些时间。为了更好地了解脚本的工作原理,请随时查看我们的build.cake文件。
在CMD上
build.cmd -Target provision
在Powershell上
./build.ps1 -Target provision
注意:如果您遇到错误,请说build.ps1不是数字签名,请以管理员的身份打开PowerShell,并通过运行Set-ExecutionPolicy RemoteSigned首先解决。
在CMD/PowerShell/SH上(新的!更多信息此处)
dotnet tool install Cake.Tool -g
dotnet cake --target=provision
如果尚未安装它,可以在此处找到要下载和设置的说明。
由于当前使用Mac Visual Studio的多目标限制,您需要在能够处理Xamarin Forms解决方案之前手动构建/还原一些项目。
以下是我们提供的一些不同的选择,以帮助使这个过程更轻松
分支3.5+带有一个蛋糕脚本目标,您可以用来构建和打开VSMAC
./build.sh --target vsmac或如上所述,在Windows部分有关供应,您也可以使用新的蛋糕。
dotnet tool install Cake.Tool -g
dotnet cake --target=provision
在没有蛋糕脚本的较早分支时,您可以使用以下build.sh脚本
如果您不想运行任何脚本:
msbuild Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csprojXamarin.Forms.Build.Tasks.csproj的bin/obj文件夹打开Xamarin.Forms解决方案后,您会发现错误列表窗格下有许多错误和警告;您可以通过更改Build Only Build + IntelliSense的过滤器来解决此问题。在这一点上,您应该能够成功构建解决方案。
默认情况下, Xamarin.Forms.Controls项目没有针对各种API键的配置来访问每个平台上的某些功能(例如地图)。第一次构建解决方案时,将在该项目中生成controlgallery.config文件,看起来像这样:
UWPMapsAuthKey:
如果您不使用地图,则可以忽略这一点。如果您想使用地图工作,则必须在标识符(例如UWPMapsAuthKey:abcdefghijklmnopqrstuvwxyz )下直接插入自己的每种服务中的API键。您可以找出如何获取这些方法如下:
UWPMapsAuthKey ,请访问https://microsoft.com/maps/create-a-bing-maps-key.aspx由于Android的工作方式,因此无法在运行时注入地图API键。结果,您必须将此键添加到Xamarin.Forms.ControlGallery.Android/Properties下的MapsKey.cs文件中:
[assembly: Android.App.MetaData("com.google.android.maps.v2.API_KEY", Value = "INSERT_KEY_HERE")]
您可以在此处找到如何获取Google Maps API密钥。
确保您有Nuget.exe 4.0或更高版本和最新的.NET Core SDK。在MacOS上,您应该在MSBUILD命令中指定平台( /p:Platform=iPhoneSimulator )
msbuild /restore Xamarin.Forms.sln
根据您的环境设置,您可能需要在能够调试 /运行UI测试(尤其是在Windows上)之前配置一些内容。
Xamarin.Forms.ControlGallery.Android生成一个APK文件。最简单的方法是右键单击项目并选择“部署”。请注意,如果您重建解决方案,则可能会丢失APK,并且需要再次生成它。完成这些步骤后,您应该很好。您可以在测试资源管理器中查看所有UI测试,搜索它们以寻求自己的便利性,并快速运行单个测试。
运行UWP UI测试:
Xamarin.Forms.ControlGallery.WindowsUniversal项目,以将ControlGallery应用程序安装到系统上。现在,您应该能够运行任何UWP UI测试。
我们遵循.NET基金会使用的样式,但有一些例外:
private关键字,因为它是C#中的默认可访问性级别。Tools > Options在Visual Studio中更改此设置,并导航到Text Editor > C# ,然后选择“ Keep Tabs”无线电选项。在Mac的Visual Studio中,它通过Source Code > Code Formatting > C# source code中的偏好设置,并禁用Convert tabs to spaces复选框。Source Code > Code Formatting > C# source code中的偏好为Mac的Visual Studio设置,并将Desired file width更改为120 。 我们使用GitHub问题来跟踪问题。如果可能的话,请与错误报告一起提交错误的复制品。