Doelen bouwen

De volgende builddoelen worden gedefinieerd in .NET voor Android-projecten.

Bouwen

Hiermee wordt de broncode in een project en alle afhankelijkheden gebouwd.

Met dit doel wordt geen Android-pakket (.apk bestand) gemaakt. Als u een Android-pakket wilt maken, gebruikt u de SignAndroidPackage target of stelt u de eigenschap `$(AndroidBuildApplicationPackage)` in op True wanneer u bouwt.

msbuild /p:AndroidBuildApplicationPackage=True App.sln

BuildAndStartAotProfiling

Hiermee bouwt u de app met een ingesloten AOT-profiler, stelt u de TCP-poort $(AndroidAotProfilerPort)van de profiler in op en start u de standaardactiviteit.

De standaard TCP-poort is 9999.

Toegevoegd in Xamarin.Android 10.2.

Schoon

Verwijdert alle bestanden die door het buildproces worden gegenereerd.

ComputeAvailableDevices

Vraagt op en retourneert een lijst van beschikbare Android-apparaten en emulators die kunnen worden gebruikt met dotnet run.

Dit doel wordt automatisch aangeroepen door de dotnet run-opdracht van de .NET SDK om apparaatselectie te ondersteunen via de --device optie. Het retourneert een @(Devices) itemgroep waarin elk apparaat de volgende metagegevens heeft:

  • Beschrijving: Een mensvriendelijke naam (bijvoorbeeld 'Pixel 7 - API 35' voor emulators, 'Pixel 6 Pro' voor fysieke apparaten)
  • Type: "Apparaat" of "Emulator"
  • Status: Apparaatstatus - 'Online', 'Offline', 'Niet geautoriseerd' of 'NoPermissions'
  • Model: De apparaatmodel-id (optioneel)
  • Product: De productnaam (optioneel)
  • Apparaat: de apparaatnaam (optioneel)
  • TransportId: De adb-transport-id (optioneel)

Als u bijvoorbeeld alle beschikbare apparaten wilt weergeven:

dotnet build -t:ComputeAvailableDevices

Dit doel maakt deel uit van de .NET SDK-apparaatselectiespecificatie en maakt opdrachten mogelijk zoals:

dotnet run --device <device-serial>

Wanneer een apparaat wordt geselecteerd via de $(Device) eigenschap, wordt de $(AdbTarget) eigenschap automatisch ingesteld op dat specifieke apparaat voor alle adb-bewerkingen.

Toegevoegd in .NET 11.

FinishAotProfiling

Moet worden aangeroepen na het BuildAndStartAotProfiling-doel.

Verzamelt de AOT Profiler-gegevens van het apparaat of de emulator via de TCP-poort $(AndroidAotProfilerPort) en schrijft ze naar $(AndroidAotCustomProfilePath).

De standaardwaarden voor poort en aangepast profiel zijn 9999 en custom.aprof.

Als u extra opties aan aprofutil wilt doorgeven, stelt u deze daar in. $(AProfUtilExtraOptions) eigenschap.

Dit komt overeen met:

aprofutil $(AProfUtilExtraOptions) -s -v -f -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)"

Toegevoegd in Xamarin.Android 10.2.

GetAndroidDependencies

Hiermee maakt u de @(AndroidDependency) itemgroep, die wordt gebruikt door het InstallAndroidDependencies doel om te bepalen welke Android SDK-pakketten moeten worden geïnstalleerd.

Installeren

Maakt, ondertekent en installeert het Android-pakket op het standaardapparaat of virtuele apparaat.

Met de $(AdbTarget) eigenschap geeft u het Android-doelapparaat op waaruit het Android-pakket kan worden geïnstalleerd of verwijderd.

# Install package onto emulator via -e
# Use `/Library/Frameworks/Mono.framework/Commands/msbuild` on OS X
MSBuild /t:Install ProjectName.csproj /p:AdbTarget=-e

InstallAndroidDependencies

Roept het GetAndroidDependencies doel aan en installeert vervolgens de Android SDK-pakketten die zijn opgegeven in de @(AndroidDependency) itemgroep.

dotnet build -t:InstallAndroidDependencies -f net8.0-android "-p:AndroidSdkDirectory=<path to sdk>" "-p:JavaSdkDirectory=<path to java sdk>"

Het -f net8.0-android is vereist omdat dit doel een .NET voor Android-specifiek doel is. Als u dit argument weglaat, krijgt u de volgende fout:

error MSB4057: The target "InstallAndroidDependencies" does not exist in the project.

De AndroidSdkDirectory eigenschappen en JavaSdkDirectory eigenschappen zijn vereist omdat we moeten weten waar de vereiste onderdelen moeten worden geïnstalleerd. Deze directories kunnen leeg of bestaan zijn. Sdk-onderdelen worden bovenop een bestaande SDK-installatie geïnstalleerd.

De $(AndroidManifestType) eigenschap MSBuild bepaalt welke Visual Studio SDK Manager-opslagplaats wordt gebruikt voor pakketnaam- en pakketversiedetectie en URL's die moeten worden gedownload.

RunWithLogging

Hiermee wordt de toepassing uitgevoerd waarvoor extra logboekregistratie is ingeschakeld. Handig bij het rapporteren of onderzoeken van een probleem met de toepassing of de runtime. Als het succesvol is, zullen de berichten die op het scherm worden weergegeven de locatie tonen van het logcat-bestand met de vastgelegde berichten.

Eigenschappen die van invloed zijn op de werking van het doel:

  • /p:RunLogVerbose=true maakt uitgebreidere logboekregistratie vanuit MonoVM mogelijk
  • /p:RunLogDelayInMS=X waar X moet worden vervangen door tijd in milliseconden om te wachten voordat de logboekuitvoer naar het bestand wordt geschreven. Wordt standaard ingesteld op 1000.

OndertekenAndroidPakket

Hiermee maakt en ondertekent u het Android-pakketbestand (.apk).

Gebruik /p:Configuration=Release om zelfstandige Release-pakketten te genereren.

StartAndroidActivity

Start de standaardactiviteit op het apparaat of de actieve emulator.

Als u een andere activiteit wilt starten, stelt u de parameters/instellingen in. $(AndroidLaunchActivity) eigenschap aan de naam van de activiteit toewijzen.

Dit komt overeen met:

adb shell am start -S -n @PACKAGE_NAME@/$(AndroidLaunchActivity)

Toegevoegd in Xamarin.Android 10.2.

StopAndroidPackage

Hiermee stopt u het toepassingspakket volledig op het apparaat of de actieve emulator.

Dit komt overeen met:

adb shell am force-stop @PACKAGE_NAME@

Toegevoegd in Xamarin.Android 10.2.

Uninstall

Hiermee verwijdert u het Android-pakket van het standaardapparaat of virtuele apparaat.

Met de $(AdbTarget) eigenschap geeft u het Android-doelapparaat op waaruit het Android-pakket kan worden geïnstalleerd of verwijderd.

UpdateAndroidResources

Werkt het Resource.designer.cs bestand bij.

Dit doel wordt meestal door de IDE aangeroepen wanneer er nieuwe resources aan het project worden toegevoegd.