Я пытаюсь создать .NET-приложение для Android в своем конвейере Gitlab CI, но «официальный» способ, который я нашел, похоже, не работает, или я что-то неправильно понял.
Я использовал шаблон приложения для Android, а не шаблон MAUI. Насколько я понимаю, мне нужно начать с образа dotnet sdk, установить рабочую нагрузку dotnet android, установить android sdk и jdk, а затем просто вызвать dotnet build или что угодно.
Когда мне впервые не удалось это сделать, dotnet очень любезно отправил меня на [Установить .NET для Android] зависимости](https://learn.microsoft.com/en-us/dotne ... ndentities), что кажется мне очень полезным, поскольку там написано, что я просто звоню
dotnet build -t:InstallAndroidDependencies -p:AndroidSdkDirectory=$CI_PROJECT_DIR/android-sdk -p:JavaSdkDirectory=$CI_PROJECT_DIR/java-sdk -p:AcceptAndroidSdkLicenses=True
И волшебная цель MSBuild установит для меня и android sdk, и jdk.
Но это не так. Насколько я могу судить, проблема связана с пользователем или чем-то еще:
/usr/share/dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.30/tools/Xamarin.Installer.Common.targets(19,3): error : Exception caught while unzipping '/tmp/tmp81YXys.tmp' in '/tmp/7e41a2ed'. System.InvalidOperationException: Internal error: CommonUtilities.Helpers.UserName must have a valid value [/builds/Regenhardt/dual-camera/DualCamera/DualCamera.csproj]
Итак, я, вероятно, не первый человек, который создает приложение .NET Android на Gitlab CI, должна быть передовая практика или что-то вроде чего-то простого для создания приложения .NET Android в конвейере CI?
Вот моя текущая конфигурация конвейера, в которой я добавил цель сборки к фактическому вызову сборки, потому что я думал, что dotnet уже должен быть достаточно умным, но, конечно, это не так. работаю, потому что тогда меня бы здесь не было:
image: mcr.microsoft.com/dotnet/sdk:10.0
stages:
- build
before_script:
- dotnet workload install android
build:
stage: build
script:
- dotnet build DualCamera/DualCamera.csproj -t:InstallAndroidDependencies -p:AndroidSdkDirectory=$CI_PROJECT_DIR/android-sdk -p:JavaSdkDirectory=$CI_PROJECT_DIR/java-sdk -p:AcceptAndroidSdkLicenses=True
Подробнее здесь: https://stackoverflow.com/questions/798 ... i-pipeline