Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgenden Buildziele werden in .NET für Android-Projekte definiert.
Entwickeln
Hiermit werden der Quellcode und alle Abhängigkeiten in einem Projekt erstellt.
Dieses Ziel erstellt kein Android-Paket (.apk-Datei).
Verwenden Sie zum Erstellen eines Android-Pakets das Ziel SignAndroidPackage, oder legen Sie die Eigenschaft $(AndroidBuildApplicationPackage) beim Erstellen auf TRUE fest:
msbuild /p:AndroidBuildApplicationPackage=True App.slnx
BuildAndStartAotProfiling
Dieses Ziel erstellt die App mit einem eingebetteten AOT-Profiler, legt den TCP-Port für den Profiler auf $(AndroidAotProfilerPort) fest und startet die Standardaktivität.
Dieses Legacyziel gilt für unterstützte .NET 10-und-frühere Projekte, die Mono verwenden. Es konfiguriert kein CoreCLR- oder NativeAOT-Profiling.
Der standardmäßige TCP-Port ist 9999.
Hinzugefügt in Xamarin.Android 10.2.
Reinigen
Hiermit werden alle vom Buildprozess generierten Dateien entfernt.
ComputeAvailableDevices
Ermittelt und gibt eine Liste der verfügbaren Android-Geräte und Emulatoren zurück, die mit dotnet run verwendet werden können.
Dieses Ziel wird automatisch vom Befehl des .NET SDK dotnet run aufgerufen, um die Geräteauswahl über die --device Option zu unterstützen. Es gibt eine @(Devices) Elementgruppe zurück, in der jedes Gerät über die folgenden Metadaten verfügt:
- Beschreibung: Ein benutzerfreundlicher Name (z. B. "Pixel 7 – API 35" für Emulatoren, "Pixel 6 Pro" für physische Geräte)
- Typ: Entweder "Gerät" oder "Emulator"
- Status: Gerätestatus – "Online", "Offline", "Nicht autorisiert" oder "NoPermissions"
- Modell: Der Gerätemodellbezeichner (optional)
- Produkt: Der Produktname (optional)
- Gerät: Der Gerätename (optional)
- TransportId: Die adb-Transport-ID (optional)
So können Sie beispielsweise alle verfügbaren Geräte auflisten:
dotnet build -t:ComputeAvailableDevices
Dieses Ziel ist Teil der .NET SDK-Geräteauswahlspezifikation und ermöglicht Befehle wie:
dotnet run --device <device-serial>
Wenn ein Gerät über die $(Device) Eigenschaft ausgewählt wird, wird die $(AdbTarget) Eigenschaft automatisch auf dieses bestimmte Gerät für alle adb-Vorgänge festgelegt.
In .NET 11 hinzugefügt.
FinishAotProfiling
Dieses Ziel muss nach dem Ziel BuildAndStartAotProfiling aufgerufen werden.
Dieses Legacyziel gilt für unterstützte .NET 10-und-frühere Projekte, die Mono verwenden.
Es sammelt AOT-Profilerdaten über den TCP-Port vom Gerät oder Emulator
$(AndroidAotProfilerPort) und schreibt sie zu $(AndroidAotCustomProfilePath).
Die Standardwerte für Port und benutzerdefiniertes Profil sind 9999 und custom.aprof.
Um zusätzliche Optionen an aprofutil zu übergeben, legen Sie sie in der
$(AProfUtilExtraOptions)-Eigenschaft.
Das entspricht:
aprofutil $(AProfUtilExtraOptions) -s -v -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)"
Hinzugefügt in Xamarin.Android 10.2.
GetAndroidDependencies
Erstellt die @(AndroidDependency) Elementgruppe, die vom InstallAndroidDependencies Ziel verwendet wird, um zu bestimmen, welche Android SDK-Pakete installiert werden sollen.
GetApplicationArtifacts
Erstellt und gibt die @(ApplicationArtifact) Elementgruppe zurück, die die APK- und Android-App-Bundle-Dateien enthält, die vom Build erstellt wurden.
Dieses Ziel hängt immer vom erforderlichen Ziel Build ab, das Plattformartefakte in @(ApplicationArtifact) erzeugt und sammelt. Spätere Importe können Ziele für $(GetApplicationArtifactsDependsOn) festlegen oder hinzufügen, um diese vorhandenen Elemente vor der Rückgabe durch dieses Ziel oder das Ziel Publish mit zusätzlichen Metadaten zu aktualisieren.
$(GetApplicationArtifactsDependsOn) Durch das Ersetzen wird die erforderliche Build Abhängigkeit nicht entfernt.
Allgemeine Anwendungsmetadaten werden aus dem endgültigen zusammengeführten AndroidManifest.xml gelesen, bevor die Artefakte gesammelt werden. Endgültige Manifestwerte haben Vorrang vor den entsprechenden Projekteigenschaften, z. B. wenn ein benutzerdefiniertes Manifest generierte Werte überschreibt oder $(GenerateApplicationManifest) ist false. Ein android:label Ressourcenverweis wie @string/app_name bleibt ein Ressourcenverweis; es wird kein Gebietsschema ausgewählt, wenn die Metadaten zurückgegeben werden.
Rufen Sie dieses Ziel direkt auf, wenn ein CI-Job oder ein benutzerdefiniertes Tool die Pfade zu den Build-Ausgabeartefakten benötigt:
dotnet build MyApp.csproj -t:GetApplicationArtifacts -getTargetResult:GetApplicationArtifacts
Verwenden Sie das Zielergebnis Publish, wenn der Aufrufer die kopierten veröffentlichten Ausgaben in $(PublishDir) benötigt:
dotnet build MyApp.csproj -t:Publish -getTargetResult:Publish
Installieren
Hiermit wird das Android-Paket auf dem Standardgerät oder virtuellen Gerät erstellt, signiert und installiert.
Die $(AdbTarget)-Eigenschaft gibt das Android-Zielgerät an, auf dem das Android-Paket installiert oder entfernt werden soll.
# Install package onto emulator via -e
# Use `/Library/Frameworks/Mono.framework/Commands/msbuild` on OS X
MSBuild /t:Install ProjectName.csproj /p:AdbTarget=-e
Installiere Android-Abhängigkeiten
Ruft das GetAndroidDependencies Ziel auf und installiert dann die android SDK-Pakete, die in der @(AndroidDependency) Elementgruppe angegeben sind.
dotnet build -t:InstallAndroidDependencies -f net8.0-android "-p:AndroidSdkDirectory=<path to sdk>" "-p:JavaSdkDirectory=<path to java sdk>"
Dies -f net8.0-android ist erforderlich, da dieses Ziel ein .NET für Android-spezifisches Ziel ist. Wenn Sie dieses Argument weglassen, erhalten Sie die folgende Fehlermeldung:
error MSB4057: The target "InstallAndroidDependencies" does not exist in the project.
Die AndroidSdkDirectory und JavaSdkDirectory die Eigenschaften sind erforderlich, da wir wissen müssen, wo die erforderlichen Komponenten installiert werden sollen. Diese Verzeichnisse können leer oder vorhanden sein. Sdk-Komponenten werden oben auf einer vorhandenen SDK-Installation installiert.
Die $(AndroidManifestType) MSBuild-Eigenschaft steuert, welches Visual Studio SDK Manager-Repository für paketname- und paketversionserkennung und URLs zum Herunterladen verwendet wird.
Veröffentlichen
Erstellt die Anwendung, kopiert endgültige APK- und Android-App-Bundle-Dateien in $(PublishDir)und gibt die @(ApplicationArtifact) Elementgruppe zurück.
Zurückgegebene Elemente verwenden die kopierten Publish-Verzeichnispfade und behalten Artefaktmetadaten wie %(PackageFormat), %(Signed), %(Abi), %(PackageId), %(ApplicationId), %(ApplicationTitle), %(ApplicationName), %(ApplicationDisplayVersion) und %(ApplicationVersion) bei.
Publish wird als Erstes ausgeführt GetApplicationArtifacts, wodurch das Projekt erstellt und @(ApplicationArtifact) mit den von der Plattform erzeugten Artefakten gefüllt wird. Ziele, die an $(GetApplicationArtifactsDependsOn) angehängt werden, werden dann für diese vorhandenen Elemente ausgeführt, bevor Publish die zu veröffentlichenden Dateien berechnet und bevor Publish@(ApplicationArtifact) zurückgibt, sodass spätere Importe Metadaten für Aufrufer der Veröffentlichung hinzufügen können.
Um beispielsweise die veröffentlichten Artefakte abzufragen:
dotnet build MyApp.csproj -t:Publish -getTargetResult:Publish
RunWithLogging
Führt die Anwendung mit aktivierter zusätzlicher Protokollierung aus. Hilfreich beim Melden oder Untersuchen eines Problems mit der Anwendung oder der Laufzeit. Bei erfolgreicher Ausführung zeigen auf dem Bildschirm angezeigte Nachrichten den Speicherort der Logcat-Datei mit den protokollierten Nachrichten an.
Eigenschaften, die sich auf die Funktionsweise des Ziels auswirken:
-
/p:RunLogVerbose=trueermöglicht eine noch ausführlichere Protokollierung zur Laufzeit -
/p:RunLogDelayInMS=XwoXdurch die Wartezeit in Millisekunden ersetzt werden soll, bevor die Protokollausgabe in die Datei geschrieben wird. Wird standardmäßig auf1000festgelegt.
Android-Paket signieren
Hiermit wird die Android-Paketdatei (.apk) erstellt und signiert.
Verwenden Sie /p:Configuration=Release, um eigenständige „Release“-Pakete zu generieren.
Von diesem Ziel erstellte Paketdateien sind in der @(ApplicationArtifact) Elementgruppe verfügbar.
StartAndroidActivity
Startet die Standardaktivität auf dem Gerät oder dem laufenden Emulator.
Legen Sie zum Starten einer anderen Aktivität für die Eigenschaft
$(AndroidLaunchActivity)-Eigenschaft zu dem Aktivitätsnamen hinzufügen.
Das entspricht:
adb shell am start -S -n @PACKAGE_NAME@/$(AndroidLaunchActivity)
Hinzugefügt in Xamarin.Android 10.2.
StopAndroidPackage
Beendet das Anwendungspaket vollständig auf dem Gerät oder dem laufenden Emulator.
Das entspricht:
adb shell am force-stop @PACKAGE_NAME@
Hinzugefügt in Xamarin.Android 10.2.
Deinstallieren
Deinstalliert das Android-Paket vom Standardgerät oder virtuellen Gerät.
Die $(AdbTarget)-Eigenschaft gibt das Android-Zielgerät an, auf dem das Android-Paket installiert oder entfernt werden soll.
Android-RessourcenAktualisieren
Es wird ein Update für die Datei Resource.designer.cs ausgeführt.
Dieses Ziel wird normalerweise von der IDE aufgerufen, wenn dem Projekt neue Ressourcen hinzugefügt werden.