Поддержка Xamarin.forms закончилась 1 мая 2024 года в соответствии с Политикой поддержки Xamarin:
Поддержка Xamarin завершилась 1 мая 2024 года для всех SDK Xamarin, включая Xamarin.forms.
Xamarin.forms был сменен .NET MAUI в мае 2022 года в рамках .NET 6 и в настоящее время поддерживается, как описано в политике поддержки .NET MAUI. Следуйте официальному руководству по обновлению, чтобы донести ваши приложения Xamarin к последней версии .NET.
Все наши разработчики и участники большое спасибо за то, что вы являетесь частью нашего сообщества Xamarin. Увидимся в .net Maui!
Xamarin.forms предоставляет способ быстро создать собственные приложения для iOS, Android, Windows и MacOS, полностью в C#.
Узнайте больше о платформе по адресу https://www.xamarin.com/forms.
| Платформа/функция | Название пакета | Стабильный | Предварительный | Ночная кормная лазурь (главная ветвь) |
|---|---|---|---|---|
| Основной | Xamarin.Forms | |||
| Applinks | Xamarin.Forms.AppLinks | |||
| Карты | Xamarin.Forms.Maps | |||
| Maps.gtk | Xamarin.Forms.Maps.GTK | |||
| Maps.wpf | Xamarin.Forms.Maps.WPF | |||
| Страницы | Xamarin.Forms.Pages | |||
| Pages.azure | Xamarin.Forms.Pages.Azure | |||
| Platform.gtk | Xamarin.Forms.Platform.GTK | |||
| Платформа.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 для достижения успеха. Смотрите эту страницу документации, чтобы узнать, как.
VS 2019+ требуется для разработки xamarin.forms. Если у вас еще нет установки, вы можете скачать его здесь. 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)Android 10.0 API 29 SDK и Android 9.0 API 28 SDK необходимы для разработки xamarin.forms. Они могут быть установлены с помощью Xamarin Android SDK Manager.
Мы также рекомендуем установить Xamarin Android Device Manager. Он будет использовать инструменты HAXM, установленные выше, и позволит вам настраивать виртуальные устройства Android (AVD), которые эмулируют устройства Android. Если у вас уже установлен VS 2019+, вы можете убедиться, что эти функции установлены путем изменения установки VS 2019+ через установщик Visual Studio.
Если вы получаете ошибки в отношении пропущенных 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
Если у вас еще нет установки, инструкции для загрузки и настройки можно найти здесь.
Из-за текущих ограничений с несколькими целей с Visual Studio для Mac вам нужно будет вручную создавать/восстановить некоторые проекты, прежде чем вы сможете работать над решением форм Xamarin.
Вот несколько разных вариантов, которые мы собрали, чтобы сделать этот процесс проще
Ветви 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 После открытия решения Xamarin.forms вы обнаружите, что в панели списка ошибок существует ряд ошибок и предупреждений; Вы можете разрешить это, изменив фильтр Build + IntelliSense Build Only . На этом этапе вы сможете успешно создать решение.
По умолчанию проект Xamarin.Forms.Controls не имеет конфигурации для различных клавиш API для доступа к определенным функциям на каждой платформе (например, карты). При первом построении решения в этом проекте будет создан файл controlgallery.config , который выглядит следующим образом:
UWPMapsAuthKey:
Если вы не работаете с картами, вы можете игнорировать это. Если вы хотите работать с картами, вам придется получить свои собственные ключи API для каждой из этих услуг, вставленных непосредственно после идентификатора (например, UWPMapsAuthKey:abcdefghijklmnopqrstuvwxyz ). Вы можете узнать, как получить каждое из них следующим образом:
UWPMapsAuthKey на https://microsoft.com/maps/create-a-bing-maps-key.aspx Из -за того, как работает Android, ключ API Maps не может быть введен во время выполнения. В результате вам придется добавить этот ключ в файл MapsKey.cs под Xamarin.Forms.ControlGallery.Android/Properties :
[assembly: Android.App.MetaData("com.google.android.maps.v2.API_KEY", Value = "INSERT_KEY_HERE")]
Вы можете узнать, как получить ключ API Google Maps здесь.
Убедитесь, что у вас есть nuget.exe 4.0 или выше, а также новейший SDK .NET Core. В MacOS вы должны указать платформу в команде MSBuild ( /p:Platform=iPhoneSimulator )
msbuild /restore Xamarin.Forms.sln
В зависимости от настройки вашей среды, вам может потребоваться настроить несколько вещей, прежде чем иметь возможность отладки / запустить тесты пользовательского интерфейса, особенно в Windows.
Xamarin.Forms.ControlGallery.Android . Самый простой способ сделать это - щелкнуть правой кнопкой мыши проект и выбрать «Развертывание». Обратите внимание, что если вы восстановите решение, вы можете потерять APK и понадобятся его снова.После того, как эти шаги позаботятся, вы должны быть полезны. Вы можете увидеть все тесты пользовательского интерфейса в Test Explorer, искать его для вашего собственного удобства и быстро запустить отдельные тесты.
Чтобы запустить тесты UWP UI:
Xamarin.Forms.ControlGallery.WindowsUniversal , чтобы установить приложение Controlgallery на вашу систему.Теперь вы должны иметь возможность запустить любой из тестов UWP UI.
Мы следуем стилю, используемому Фондом .NET, за некоторыми исключениями:
private ключевое слово, так как это уровень доступности по умолчанию в C#.Tools > Options и навигацию по Text Editor > C# и выбрать параметр «Keep Tabs». В Visual Studio для Mac он установлен с помощью предпочтений в Source Code > Code Formatting > C# source code и отключает флажок для Convert tabs to spaces .Source Code > Code Formatting > C# source code и изменение Desired file width на 120 . Мы используем проблемы GitHub для отслеживания проблем. Если возможно, пожалуйста, отправьте воспроизводство вашей ошибки вместе с вашим отчетом об ошибке.