Condividi tramite


Destinazioni di compilazione

Le destinazioni di compilazione seguenti sono definite in .NET per i progetti Android.

Compilazione

Compila il codice sorgente all'interno di un progetto e di tutte le sue dipendenze.

Questa destinazione non crea un pacchetto Android (.apk file). Per creare un pacchetto Android, usare il target SignAndroidPackage oppure impostare la proprietà `$(AndroidBuildApplicationPackage)` a True durante il build.

msbuild /p:AndroidBuildApplicationPackage=True App.sln

BuildAndStartAotProfiling

Compila l'app con un profiler AOT incorporato, imposta la porta TCP del profiler su $(AndroidAotProfilerPort)e avvia l'attività predefinita.

La porta TCP predefinita è 9999.

Aggiunta in Xamarin.Android 10.2.

Pulire

Rimuove tutti i file generati dal processo di compilazione.

CalcolareDispositiviDisponibili

Esegue query e restituisce un elenco di dispositivi e emulatori Android disponibili che possono essere usati con dotnet run.

Questa destinazione viene chiamata automaticamente dal comando di .NET SDK per supportare la selezione dei dotnet run dispositivi tramite l'opzione --device . Restituisce un @(Devices) gruppo di elementi in cui ogni dispositivo ha i metadati seguenti:

  • Descrizione: nome descrittivo (ad esempio, "Pixel 7 - API 35" per gli emulatori, "Pixel 6 Pro" per i dispositivi fisici)
  • Tipo: "Dispositivo" o "Emulatore"
  • Stato: stato del dispositivo - "Online", "Offline", "Non autorizzato" o "NoPermissions"
  • Modello: identificatore del modello di dispositivo (facoltativo)
  • Prodotto: nome del prodotto (facoltativo)
  • Dispositivo: nome del dispositivo (facoltativo)
  • TransportId: ID trasporto adb (facoltativo)

Ad esempio, per elencare tutti i dispositivi disponibili:

dotnet build -t:ComputeAvailableDevices

Questa destinazione fa parte della specifica di selezione del dispositivo .NET SDK e abilita comandi come:

dotnet run --device <device-serial>

Quando un dispositivo viene selezionato tramite la $(Device) proprietà , la $(AdbTarget) proprietà viene impostata automaticamente come destinazione di tale dispositivo specifico per tutte le operazioni adb.

Aggiunta in .NET 11.

FinishAotProfiling

Deve essere chiamato dopo l'obiettivo BuildAndStartAotProfiling.

Raccoglie i dati del profiler AOT dal dispositivo o dall'emulatore tramite la porta TCP $(AndroidAotProfilerPort) e li scrive in $(AndroidAotCustomProfilePath).

I valori predefiniti per la porta e il profilo personalizzato sono 9999 e custom.aprof.

Per passare opzioni aggiuntive a aprofutil, impostarle in Proprietà $(AProfUtilExtraOptions).

Equivale a:

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

Aggiunta in Xamarin.Android 10.2.

GetAndroidDependencies

Crea il @(AndroidDependency) gruppo di elementi, usato dalla InstallAndroidDependencies destinazione per determinare quali pacchetti Android SDK installare.

Installa

Crea, firma e installa il pacchetto Android nel dispositivo predefinito o nel dispositivo virtuale.

La $(AdbTarget) proprietà specifica il dispositivo di destinazione Android da cui può essere installato o rimosso il pacchetto Android.

# 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

Chiama la GetAndroidDependencies destinazione, quindi installa i pacchetti Android SDK specificati nel @(AndroidDependency) gruppo di elementi.

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

-f net8.0-android È obbligatorio perché questa destinazione è una destinazione .NET per Android specifica. Se si omette questo argomento, verrà visualizzato l'errore seguente:

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

Le AndroidSdkDirectory proprietà e JavaSdkDirectory sono necessarie perché è necessario sapere dove installare i componenti necessari. Queste directory possono essere vuote o esistenti. I componenti SDK verranno installati sopra un'installazione SDK esistente.

La proprietà $(AndroidManifestType) MSBuild controlla quale repository del Visual Studio SDK Manager viene utilizzato per il rilevamento del nome e della versione del pacchetto, oltre che per ottenere gli URL per il download.

EseguiConRegistrazione

Esegue l'applicazione con registrazione aggiuntiva abilitata. Utile quando si segnala o si analizza un problema con l'applicazione o il runtime. In caso di esito positivo, i messaggi stampati nella schermata visualizzeranno il percorso del file logcat con i messaggi registrati.

Proprietà che influiscono sul funzionamento dell'obiettivo:

  • /p:RunLogVerbose=true abilita la registrazione ancora più dettagliata da MonoVM
  • /p:RunLogDelayInMS=X dove X deve essere sostituito con il tempo in millisecondi da attendere prima di scrivere l'output del log nel file. Il valore predefinito è 1000.

SignAndroidPackage

Crea e firma il file del pacchetto Android (.apk).

Da usare con /p:Configuration=Release per generare i pacchetti "Release" (Rilascio) autonomi.

StartAndroidActivity

Avvia l'attività predefinita nel dispositivo o nell'emulatore in esecuzione.

Per avviare un'attività diversa, impostare $(AndroidLaunchActivity) proprietà al nome dell'attività.

Equivale a:

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

Aggiunta in Xamarin.Android 10.2.

StopAndroidPackage

Arresta completamente il pacchetto dell'applicazione nel dispositivo o nell'emulatore in esecuzione.

Equivale a:

adb shell am force-stop @PACKAGE_NAME@

Aggiunta in Xamarin.Android 10.2.

Disinstalla

Disinstalla il pacchetto Android dal dispositivo predefinito o dal dispositivo virtuale.

La $(AdbTarget) proprietà specifica il dispositivo di destinazione Android da cui può essere installato o rimosso il pacchetto Android.

UpdateAndroidResources

Aggiorna il Resource.designer.cs file.

Questa destinazione viene in genere chiamata dall'IDE quando vengono aggiunte nuove risorse al progetto.