Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los siguientes objetivos de compilación se definen en .NET para proyectos de Android.
Crear
Compila el código fuente en un proyecto y en todas las dependencias.
Este destino no crea un paquete de Android (archivo .apk).
Para crear un paquete de Android, use el destino SignAndroidPackageo establezca la propiedad `$(AndroidBuildApplicationPackage) en True al compilar:
msbuild /p:AndroidBuildApplicationPackage=True App.slnx
BuildAndStartAotProfiling
Compila la aplicación con un generador de perfiles de AOT insertado, establece el puerto TCP del generador de perfiles en $(AndroidAotProfilerPort) e inicia la actividad predeterminada.
Este destino heredado se aplica a los proyectos compatibles de .NET 10 y versiones anteriores que usan Mono. No configura el perfilado de CoreCLR ni de NativeAOT.
El puerto TCP predeterminado es 9999.
Se ha agregado en Xamarin.Android 10.2.
Limpiar
Elimina todos los archivos que genera el proceso de compilación.
CalcularDispositivosDisponibles
Consulta y devuelve una lista de dispositivos Android y emuladores disponibles que se pueden usar con dotnet run.
El SDK de .NET llama automáticamente a este destino mediante el comando dotnet run para admitir la selección de dispositivo con la opción --device. Devuelve un @(Devices) grupo de elementos donde cada dispositivo tiene los metadatos siguientes:
- Descripción: un nombre descriptivo (por ejemplo, "Píxel 7 - API 35" para emuladores, "Pixel 6 Pro" para dispositivos físicos)
- Tipo: "Dispositivo" o "Emulador"
- Estado: Estado del dispositivo: "En línea", "Desconectado", "No autorizado" o "Sin permisos"
- Modelo: identificador del modelo de dispositivo (opcional)
- Producto: el nombre del producto (opcional)
- Dispositivo: el nombre del dispositivo (opcional)
- TransportId: identificador de transporte de adb (opcional)
Por ejemplo, para enumerar todos los dispositivos disponibles:
dotnet build -t:ComputeAvailableDevices
Este destino forma parte de la especificación de selección de dispositivos del SDK de .NET y habilita comandos como:
dotnet run --device <device-serial>
Cuando se selecciona un dispositivo a través de la $(Device) propiedad , la $(AdbTarget) propiedad se establece automáticamente como destino para ese dispositivo específico para todas las operaciones de adb.
Se ha agregado en .NET 11.
FinishAotProfiling
Se le debe llamar después del destino BuildAndStartAotProfiling.
Este objetivo heredado se aplica a los proyectos compatibles con .NET 10 o anteriores que usan Mono.
Recopila los datos del generador de perfiles de AOT del dispositivo o emulador mediante el puerto TCP
$(AndroidAotProfilerPort) y los escribe en $(AndroidAotCustomProfilePath).
Los valores predeterminados para el puerto y el perfil personalizado son 9999 y custom.aprof.
Para pasar opciones adicionales a aprofutil, establézcalas en Propiedad $(AProfUtilExtraOptions).
Esto equivale a:
aprofutil $(AProfUtilExtraOptions) -s -v -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)"
Se ha agregado en Xamarin.Android 10.2.
GetAndroidDependencies
Crea el grupo de elementos @(AndroidDependency), que usa el destino InstallAndroidDependencies para determinar qué paquetes de Android SDK se van a instalar.
GetApplicationArtifacts
Crea y devuelve el @(ApplicationArtifact) grupo de elementos, que contiene los archivos apk y Android App Bundle generados por la compilación.
Este objetivo siempre depende del objetivo requerido Build, que genera y recopila artefactos de la plataforma en @(ApplicationArtifact). Las importaciones posteriores pueden establecer o anexar destinos en $(GetApplicationArtifactsDependsOn) para actualizar esos elementos existentes con metadatos adicionales antes de que este destino o el destino Publish los devuelva. Reemplazar $(GetApplicationArtifactsDependsOn) no elimina la dependencia obligatoria Build.
Los metadatos comunes de la aplicación se leen del archivo AndroidManifest.xml final combinado antes de recopilar los artefactos. Los valores finales del manifiesto tienen prioridad sobre las propiedades del proyecto correspondientes, incluido cuando un manifiesto personalizado invalida los valores generados o $(GenerateApplicationManifest) es false. Una android:label referencia de recursos como @string/app_name sigue siendo una referencia de recursos; no se selecciona ninguna configuración regional cuando se devuelven los metadatos.
Llame a este objetivo directamente cuando un trabajo de CI o una herramienta personalizada necesite las rutas del artefacto de salida de la compilación:
dotnet build MyApp.csproj -t:GetApplicationArtifacts -getTargetResult:GetApplicationArtifacts
Utilice el resultado de destino Publish cuando quien realiza la llamada necesite las salidas de publicación copiadas en $(PublishDir):
dotnet build MyApp.csproj -t:Publish -getTargetResult:Publish
Instalación
Crea, firma e instala el paquete de Android en el dispositivo predeterminado o el dispositivo virtual.
La propiedad $(AdbTarget) especifica el dispositivo Android de destino en el que se puede instalar el paquete Android o desde el que se puede quitar.
# 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
Llama al destino GetAndroidDependencies y, después, instala los paquetes de Android SDK especificados en el grupo de elementos @(AndroidDependency).
dotnet build -t:InstallAndroidDependencies -f net8.0-android "-p:AndroidSdkDirectory=<path to sdk>" "-p:JavaSdkDirectory=<path to java sdk>"
-f net8.0-android Es necesario, ya que este destino es un destino específico de .NET para Android. Si omite este argumento, obtendrá el siguiente error:
error MSB4057: The target "InstallAndroidDependencies" does not exist in the project.
Las AndroidSdkDirectory propiedades y JavaSdkDirectory son necesarias, ya que es necesario saber dónde instalar los componentes necesarios. Estos directorios pueden estar vacíos o existentes. Los componentes del SDK se instalarán sobre una instalación del SDK existente.
La propiedad $(AndroidManifestType) de MSBuild controla qué repositorio del Administrador de SDK de Visual Studio se usa para la detección del nombre y la versión del paquete, así como las direcciones URL que se van a descargar.
Publish
Compila la aplicación, copia los archivos finales de APK y Paquete de aplicaciones de Android en $(PublishDir)y devuelve el grupo de @(ApplicationArtifact) elementos.
Los elementos devueltos usan las rutas copiadas de publish-directory y conservan metadatos de artefactos como %(PackageFormat), %(Abi), %(Signed), %(PackageId), %(ApplicationId), %(ApplicationTitle), %(ApplicationName), %(ApplicationDisplayVersion) y %(ApplicationVersion).
Publish primero ejecuta GetApplicationArtifacts, que construye el proyecto y rellena @(ApplicationArtifact) con los artefactos generados por la plataforma. Los objetivos anexados a $(GetApplicationArtifactsDependsOn) se ejecutan después sobre esos elementos existentes, antes de que Publish calcule los archivos de publicación y antes de que Publish devuelva @(ApplicationArtifact), por lo que las importaciones posteriores pueden agregar metadatos para quienes invocan la publicación.
Por ejemplo, para consultar los artefactos publicados:
dotnet build MyApp.csproj -t:Publish -getTargetResult:Publish
RunWithLogging
Ejecuta la aplicación con el registro adicional habilitado. Resulta útil al notificar o investigar un problema con la aplicación o el entorno de ejecución. Si se ejecuta correctamente, los mensajes impresos en la pantalla mostrarán la ubicación del archivo logcat con los mensajes registrados.
Propiedades que afectan al funcionamiento del objetivo:
-
/p:RunLogVerbose=truepermite un registro de tiempo de ejecución todavía más detallado. -
/p:RunLogDelayInMS=XdondeXdebe sustituirse por el tiempo en milisegundos que se debe esperar antes de escribir la salida del registro en un archivo. Tiene como valor predeterminado1000.
SignAndroidPackage
Crea y firma el archivo (.apk) del paquete de Android.
Úselo con /p:Configuration=Release para generar paquetes de comerciales.
Los archivos de paquete creados por este destino están disponibles en el grupo de @(ApplicationArtifact) elementos.
StartAndroidActivity
Inicia la actividad predeterminada en el dispositivo o en el emulador en ejecución.
Para iniciar una actividad diferente, establezca la propiedad La propiedad $(AndroidLaunchActivity) para el nombre de la actividad.
Esto equivale a:
adb shell am start -S -n @PACKAGE_NAME@/$(AndroidLaunchActivity)
Se ha agregado en Xamarin.Android 10.2.
StopAndroidPackage
Detiene completamente el paquete de aplicación en el dispositivo o en el emulador en ejecución.
Esto equivale a:
adb shell am force-stop @PACKAGE_NAME@
Se ha agregado en Xamarin.Android 10.2.
Desinstalar
Desinstala el paquete de Android del dispositivo predeterminado o del virtual.
La propiedad $(AdbTarget) especifica el dispositivo Android de destino en el que se puede instalar el paquete Android o desde el que se puede quitar.
UpdateAndroidResources
Actualiza el archivo Resource.designer.cs.
El IDE llama normalmente a este objetivo cuando se agregan nuevos recursos al proyecto.