visual-studio - para - xamarin with visual studio code
Creación lenta de aplicaciones-Xamarin para Visual Studio (1)
Aunque esta es una pregunta muy "difícil" para responder, ya que los tiempos de construcción pueden depender de muchos factores diferentes, puedo explicarle cómo determinar qué causa la demora en su construcción. En la mayoría de los casos, normalmente se debe a Resources
no optimizados. Estos pueden ser recursos como imágenes sin formato / audio / video que realmente deberían optimizarse para dispositivos móviles.
En cuanto a la funcionalidad experimental que mencionó, puede ver las notas de la versión aquí:
Nota: Esto es experimental, por lo que no garantiza que sea lo suficientemente estable como para usar en producción.
En cuanto a Build Times, necesitamos saber dónde está el cuello de botella dentro de su proyecto. Para hacer esto, debe habilitar el Diagnostic Build Output
en el comando de su agente de compilación. Esto es bastante simple con MSBuild
través de:
/v:diag
o /verbosity:diagnostic
(o la combinación que quieras)
y
/clp:PerformanceSummary
- Lo que indicará el uso de los tiempos de rendimiento de cada tarea
https://msdn.microsoft.com/en-us/library/ms164311.aspx
EX: Construyendo un Archivo-> Nuevo Proyecto de Android:
1>Project Performance Summary:
1> 4087 ms c:/users/dougl/documents/visual studio 2015/Projects/App26/App26/App26.csproj 1 calls
1> 4087 ms Rebuild 1 calls
1>
1>Target Performance Summary:
1> 0 ms GetCopyToOutputDirectoryXamlAppDefs 1 calls
1> 0 ms BeforeRebuild 1 calls
1> 0 ms PrepareResources 1 calls
1> 0 ms _DefineBuildTargetAbis 1 calls
1> 0 ms UpdateAndroidAssets 1 calls
1> 0 ms AfterBuild 1 calls
1> 0 ms AfterCompile 1 calls
1> 0 ms BeforeCompile 1 calls
1> 0 ms ExpressionBuildExtension 1 calls
1> 0 ms _GenerateCompileInputs 1 calls
1> 0 ms ResolveCodeAnalysisRuleSet 1 calls
1> 0 ms _LinkAssemblies 1 calls
1> 0 ms GetTargetPath 1 calls
1> 0 ms Build 1 calls
1> 0 ms GenerateCompiledExpressionsTempFile 1 calls
1> 0 ms _CopyConfigFiles 1 calls
1> 0 ms Compile 1 calls
1> 0 ms Rebuild 1 calls
1> 0 ms ModifyUnitTestPlatformVersion 1 calls
1> 0 ms _RegisterMdbFilesWithFileWrites 1 calls
1> 0 ms _CheckForCompileOutputs 1 calls
1> 0 ms _SetupDesignTimeBuildForIntellisense 1 calls
1> 0 ms _SetTargetFrameworkMonikerAttribute 1 calls
1> 0 ms _GenerateAndroidAssetsDir 1 calls
1> 0 ms _AddMultiDexDependencyJars 1 calls
1> 0 ms AfterResolveReferences 1 calls
1> 0 ms UpdateAndroidResources 1 calls
1> 0 ms _CheckInstantRunCondition 1 calls
1> 0 ms CleanPublishFolder 1 calls
1> 0 ms _CheckTargetFramework 1 calls
1> 0 ms _CollectMonoAndroidOutputs 1 calls
1> 0 ms _CopySourceItemsToOutputDirectory 1 calls
1> 0 ms CompileRdlFiles 1 calls
1> 0 ms _CreateAdditionalResourceCache 4 calls
1> 0 ms DesignTimeXamlMarkupCompilation 1 calls
1> 0 ms AfterRebuild 1 calls
1> 0 ms _SeparateAppExtensionReferences 1 calls
1> 0 ms ExpandSDKReferences 1 calls
1> 0 ms _ReadPropertiesCache 1 calls
1> 0 ms AfterResGen 1 calls
1> 0 ms CleanReferencedProjects 1 calls
1> 0 ms _CollectPCLPdbFiles 1 calls
1> 0 ms Clean 1 calls
1> 0 ms SetWin32ManifestProperties 1 calls
1> 0 ms ResolveSDKReferences 1 calls
1> 0 ms CreateSatelliteAssemblies 1 calls
1> 0 ms DeleteBuildInfoResource 1 calls
1> 0 ms _ResolveMonoAndroidFramework 1 calls
1> 0 ms PrepareResourceNames 1 calls
1> 0 ms _SetupInstantRun 1 calls
1> 0 ms _SetupDesignTimeBuildForBuild 1 calls
1> 0 ms CoreBuild 1 calls
1> 0 ms _CheckForDeletedResourceFile 1 calls
1> 0 ms GetFrameworkPaths 1 calls
1> 0 ms _ValidateLinkMode 1 calls
1> 0 ms DeleteBuildInfoFile 1 calls
1> 0 ms _CollectPCLMdbFiles 1 calls
1> 0 ms _CompileDex 1 calls
1> 0 ms GetInstalledSDKLocations 1 calls
1> 0 ms BeforeClean 1 calls
1> 0 ms BuildOnlySettings 1 calls
1> 0 ms _ValidateResourceCache 1 calls
1> 0 ms BeforeResolveReferences 1 calls
1> 0 ms _CheckForContent 1 calls
1> 0 ms BeforeResGen 1 calls
1> 0 ms PrepareRdlFiles 1 calls
1> 0 ms AfterClean 1 calls
1> 0 ms _SetupApplicationJavaClass 1 calls
1> 0 ms ValidationExtension 1 calls
1> 0 ms _IncludeInstanceRunReference 1 calls
1> 0 ms ResolveReferences 1 calls
1> 0 ms CreateCustomManifestResourceNames 1 calls
1> 0 ms ResGen 1 calls
1> 0 ms BeforeBuild 1 calls
1> 1 ms _SplitProjectReferencesByFileExistence 1 calls
1> 1 ms _GenerateSatelliteAssemblyInputs 1 calls
1> 1 ms PrepareForRun 1 calls
1> 1 ms CleanXsdCodeGen 1 calls
1> 1 ms GenerateTargetFrameworkMonikerAttribute 1 calls
1> 1 ms ResolveProjectReferences 1 calls
1> 1 ms AssignTargetPaths 1 calls
1> 1 ms _CreateIntermediateAssembliesDir 1 calls
1> 1 ms GetCopyToOutputDirectoryItems 1 calls
1> 1 ms PreXsdCodeGen 1 calls
1> 1 ms _GetReferenceAssemblyPaths 1 calls
1> 1 ms CoreResGen 1 calls
1> 1 ms _CleanGeneratedDeploymentFiles 1 calls
1> 1 ms SetBuildInfoDefaults 1 calls
1> 1 ms AssignProjectConfiguration 1 calls
1> 1 ms _CreatePackageWorkspace 1 calls
1> 1 ms _GetMonoPlatformJarPath 1 calls
1> 1 ms PrepareForBuild 1 calls
1> 1 ms _CalculateAdditionalResourceCacheDirectories 1 calls
1> 1 ms _ComputeAndroidResourcePaths 1 calls
1> 1 ms _SetEmbeddedWin32ManifestProperties 1 calls
1> 1 ms _GetAddOnPlatformLibraries 1 calls
1> 1 ms _GetLibraryImports 1 calls
1> 1 ms SplitResourcesByCulture 1 calls
1> 1 ms GetReferenceAssemblyPaths 1 calls
1> 1 ms _CheckProjectItems 1 calls
1> 1 ms _AdjustJavacVersionArguments 1 calls
1> 1 ms _CleanGeneratedDebuggingFiles 1 calls
1> 2 ms _PrepareAssemblies 1 calls
1> 2 ms _FindJavaStubFiles 1 calls
1> 2 ms _ExtractLibraryProjectImports 1 calls
1> 2 ms _StripEmbeddedLibraries 1 calls
1> 2 ms _CleanGetCurrentAndPriorFileWrites 1 calls
1> 2 ms _GetAdditionalResourcesFromAssemblies 1 calls
1> 2 ms _FindCompiledJavaFiles 1 calls
1> 2 ms _CheckDuplicateJavaLibraries 1 calls
1> 2 ms _AddLibraryProjectsEmbeddedResourceToProject 1 calls
1> 3 ms _ComputeAndroidAssetsPaths 1 calls
1> 3 ms CopyFilesToOutputDirectory 1 calls
1> 3 ms CoreClean 1 calls
1> 3 ms _CollectPdbFiles 1 calls
1> 3 ms GetBuiltProjectOutputRecursive 1 calls
1> 3 ms _CollectConfigFiles 1 calls
1> 3 ms _ValidateAndroidPackageProperties 1 calls
1> 3 ms _WriteResolvedAssemblies 1 calls
1> 4 ms _CreatePropertiesCache 1 calls
1> 4 ms _ResolveMonoAndroidSdks 1 calls
1> 4 ms _AddDebugStaticResources 1 calls
1> 4 ms _BuildLibraryImportsCache 1 calls
1> 4 ms _CollectMdbFiles 1 calls
1> 5 ms _CheckForInvalidConfigurationAndPlatform 1 calls
1> 7 ms _ResolveSatellitePaths 1 calls
1> 7 ms _GeneratePackageManagerJava 1 calls
1> 8 ms _DetermineJavaLibrariesToCompile 1 calls
1> 9 ms IncrementalClean 1 calls
1> 10 ms _AddStaticResources 1 calls
1> 11 ms _CleanMonoAndroidIntermediateDir 1 calls
1> 11 ms _GenerateAndroidResourceDir 1 calls
1> 12 ms _CleanMsymArchive 1 calls
1> 18 ms _SetLatestTargetFrameworkVersion 1 calls
1> 20 ms ResolveAssemblyReferences 1 calls
1> 27 ms ImplicitlyExpandDesignTimeFacades 1 calls
1> 30 ms _BuildSdkCache 1 calls
1> 35 ms _ConvertPdbFiles 1 calls
1> 45 ms _CheckTargetFrameworks 1 calls
1> 46 ms _ResolveLibraryProjectImports 1 calls
1> 52 ms _CreateBaseApk 1 calls
1> 66 ms _BuildAdditionalResourcesCache 1 calls
1> 72 ms _CopyMdbFiles 1 calls
1> 78 ms _ResolveAssemblies 1 calls
1> 115 ms _UpdateAndroidResgen 1 calls
1> 167 ms _GenerateJavaStubs 1 calls
1> 189 ms _GetPrimaryCpuAbi 1 calls
1> 453 ms _CopyIntermediateAssemblies 1 calls
1> 515 ms _LinkAssembliesNoShrink 1 calls
1> 657 ms _CompileToDalvikWithDx 1 calls
1> 664 ms _CompileJava 1 calls
1> 677 ms CoreCompile 1 calls
1>
1>Task Performance Summary:
1> 0 ms CallTarget 1 calls
1> 0 ms MSBuild 1 calls
1> 0 ms ResolveCodeAnalysisRuleSet 1 calls
1> 0 ms ReadLinesFromFile 2 calls
1> 0 ms GetFrameworkPath 1 calls
1> 0 ms FindAppConfigFile 1 calls
1> 0 ms AssignCulture 1 calls
1> 1 ms GetAppSettingsDirectory 1 calls
1> 1 ms ConvertToAbsolutePath 1 calls
1> 1 ms RemoveDuplicates 3 calls
1> 1 ms AssignTargetPath 6 calls
1> 1 ms CollectLibraryAssets 1 calls
1> 1 ms AssignProjectConfiguration 1 calls
1> 1 ms GetMonoPlatformJar 1 calls
1> 1 ms CalculateAdditionalResourceCacheDirectories 1 calls
1> 1 ms CreateTemporaryDirectory 2 calls
1> 1 ms GetAndroidDefineConstants 1 calls
1> 1 ms GetAddOnPlatformLibraries 1 calls
1> 1 ms ReadImportedLibrariesCache 1 calls
1> 1 ms ReadAdditionalResourcesFromAssemblyCache 1 calls
1> 1 ms CheckProjectItems 1 calls
1> 1 ms GetReferenceAssemblyPaths 2 calls
1> 1 ms AdjustJavacVersionArguments 1 calls
1> 2 ms FindUnderPath 7 calls
1> 2 ms Message 17 calls
1> 2 ms ReadLibraryProjectImportsCache 1 calls
1> 2 ms MakeDir 6 calls
1> 2 ms CreateAndroidResourceStamp 1 calls
1> 2 ms CreateProperty 42 calls
1> 2 ms CopyIfChanged 1 calls
1> 2 ms GetAndroidPackageName 2 calls
1> 2 ms GetJavaPlatformJar 1 calls
1> 2 ms GetExtraPackages 2 calls
1> 2 ms CheckDuplicateJavaLibraries 1 calls
1> 2 ms CreateManagedLibraryResourceArchive 1 calls
1> 3 ms RemoveUnknownFiles 1 calls
1> 3 ms AndroidComputeResPaths 2 calls
1> 3 ms CreateResgenManifest 1 calls
1> 4 ms GetImportedLibraries 1 calls
1> 4 ms GetFilesThatExist 3 calls
1> 6 ms Touch 7 calls
1> 6 ms CopyGeneratedJavaResourceClasses 2 calls
1> 7 ms CreateItem 20 calls
1> 7 ms GeneratePackageManagerJava 1 calls
1> 7 ms DetermineJavaLibrariesToCompile 1 calls
1> 8 ms Delete 28 calls
1> 10 ms CopyResource 4 calls
1> 11 ms RemoveDirFixed 5 calls
1> 12 ms WriteLinesToFile 5 calls
1> 17 ms ReadResolvedSdksCache 1 calls
1> 27 ms ResolveAssemblyReference 2 calls
1> 29 ms GenerateResourceDesigner 1 calls
1> 29 ms ResolveSdks 1 calls
1> 29 ms ConvertResourcesCases 3 calls
1> 35 ms ConvertDebuggingFiles 1 calls
1> 45 ms CheckTargetFrameworks 1 calls
1> 45 ms ResolveLibraryProjectImports 1 calls
1> 52 ms CopyMdbFiles 1 calls
1> 65 ms GetAdditionalResourcesFromAssemblies 1 calls
1> 77 ms ResolveAssemblies 1 calls
1> 92 ms Aapt 2 calls
1> 161 ms GenerateJavaStubs 1 calls
1> 186 ms GetPrimaryCpuAbi 1 calls
1> 479 ms Copy 7 calls
1> 513 ms LinkAssemblies 1 calls
1> 655 ms CompileToDalvik 1 calls
1> 660 ms Csc 1 calls
1> 664 ms Javac 1 calls
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:04.08
Observe que podemos decir cuánto tiempo tomó esta compilación: 4 segundos . Sin embargo, eso no responde a su caso, pero con un registro adecuado como este, podemos investigar ese Target
o Task
y descubrir en qué está bloqueando su proyecto. Mi conjetura sería aapt
, pero eso es solo porque incluso Android Studio se cuelga aquí ya que esta herramienta está dentro del Android SDK
y es responsable de empaquetar los activos de Android.
EDITAR:
Parece que esta compilación tardó unos 2 minutos en construir los 2 proyectos. Uno en C:/Development/Apps/trunk/App.Droid/App.Droid.ServiceClient/App.Droid.ServiceClient.csproj
y el otro en C:/Development/Apps/trunk/App.Droid/App.Droid/App.Droid.csproj
( C:/Development/Apps/trunk/App.Droid/App.Droid/App.Droid.csproj
segundos respectivamente). Esto parece bastante normal para un proyecto con tantas dependencias de terceros para Soporte de Android / Google Play. Puede buscar en la cadena Task "GetAdditionalResourcesFromAssemblies
para mostrar 6 lugares donde se define esto. Hay 2 tareas que se invocan aquí debido a los 2 proyectos de Android.
Podría valer la pena comparar un proyecto de Android Studio con tantas dependencias externas y comparar el tiempo. Sé que actualmente tenemos bastante trabajo en curso con respecto a la tarea GetAdditionalResourcesFromAssemblies
. Sin embargo, este trabajo no estará disponible hasta el Ciclo 9-10. Este trabajo es actualmente aparte de una solicitud de extracción:
https://github.com/xamarin/xamarin-android/pull/296
(Se puede decir que es casi completamente nuevo debido al tiempo de confirmación).
Como se puede ver en esta tarea, habrá las siguientes mejoras:
La tarea actual siempre descarga datos de google. Esto es independiente de si los archivos ya existen en el directorio sdk de Android. Esta confirmación cambia la tarea GetAdditionalResourcesFromAssemblies para buscar en la carpeta "extras" en el sdk de Android para el archivo .aar requerido. Esto significará que si un usuario tiene un SDK actualizado, casi no habrá necesidad de descargar los archivos de Internet.
También hay un PR - https://github.com/xamarin/xamarin-android/pull/292 (Gracias @Mikhail)
Qué direcciones reutilizan el hash calculado que también puede reducir los tiempos de compilación.
TLDR; GetAdditionalResourcesFromAssemblies
necesita un poco más de trabajo para que los tiempos de compilación sean más cortos. Esto está actualmente en las obras.
EDIT 2:
Esto se resuelve actualmente en bibliotecas de soporte que incluyen una dependencia a https://www.nuget.org/packages/Xamarin.Build.Download/
La creación / implementación de mi aplicación Xamarin.Android es terriblemente lenta en estos días. No puedo recordar que fuera tan lento antes.
He habilitado:
- Usar tiempo de ejecución compartido
- Despliegue rapido
Habilitar o deshabilitar esta configuración no hace ninguna diferencia. En ambos escenarios, demora aproximadamente 2 minutos y 20 segundos (¡hasta más de 3 minutos!) Construir / implementar mi aplicación. Usar un dispositivo real o el emulador de Visual Studio para Android tampoco hace una diferencia.
¿Por qué podría ser tan extremadamente lento? ¿No estoy usando la configuración correcta?
ACTUALIZACIÓN 2
Ayer (14 de noviembre) actualicé Xamarin.VS a 4.2.1.58. No hay mejoras en la duración de la construcción.
Estamos utilizando TeamCity para crear versiones de lanzamiento de nuestra aplicación, las estadísticas de TeamCity muestran perfectamente de lo que estoy hablando.
En el gráfico a continuación, seleccioné el último trimestre como el intervalo de fechas. Ver el mayor aumento en la duración de la construcción. Ahora, no me importa esperar 3 minutos para una versión de lanzamiento, pero no es aceptable al depurar.
ACTUALIZACIÓN 3
Jon, gracias por tu ayuda.
Mientras tanto, yo mismo he investigado un poco en los registros de compilación y también encontré la duración de cada tarea de compilación. Encontré que de alguna manera GetAdditionalResourcesFromAssemblies
toma mucho tiempo.
La cantidad de recursos que tengo en la aplicación no cambió dramáticamente, así que esto me hizo pensar: ¿podría ser otro conjunto que esté usando?
Luego realicé una revisión de la revisión 1029 (que fue la última revisión que tomó alrededor de un minuto en construirse) y traté de depurarla en el entorno actualizado. Todavía construido dentro de 1m30s ...
Asi que:
- Probablemente no sea la actualización de VS Xamarin (de lo contrario, la revisión 1029 también se construiría lenta)
- Probablemente no sea una implementación rápida, la duración aumentó en el proceso de compilación
Entonces, ¿qué se cambió entre la revisión 1029 y 1030 de mi aplicación?
- Actualizado Xamarin para Visual Studio a 4.2.0.719
- Instalación de la plataforma Android 7.0 SDK en Android SDK Manager
-
Compile using Android version
modificadaCompile using Android version
de Android a Android 7.0 en las propiedades del proyecto - Bibliotecas de soporte Xamarin.Android actualizadas del 23.4.0.1 al 24.2.1
El cambio 4 fue la razón por la que actualicé en primer lugar, quería usar Bottomsheet
, que se mejoró en la versión 24. Pero los nugets de la biblioteca de soporte apuntaban a Android 7.0, así que tuve que hacer 1-3 para poder actualizar el bibliotecas de apoyo.
¿Podría haber cambiado algo en los enlaces de la biblioteca de soporte que causó todo esto? Revisé Internet para ver si otros desarrolladores tenían este problema y lo encontré en el foro de Xamarin. Establecer la propiedad de compilación de AndroidExplicitCrunch
en true
parece que la corrige allí, pero cuando lo intenté, obtuve otro error de compilación.
De todos modos, eso es lo que he intentado mientras tanto. Ahora, según lo solicitado, aquí está mi registro de compilación de diagnóstico:
1>Project Performance Summary:
1> 3 ms C:/Development/Apps/FieldService-trunk/OverAllField.XamarinAndroid/OverAll.App.Shared/OverAll.App.Shared.csproj 3 calls
1> 1 ms GetTargetPath 1 calls
1> 0 ms GetNativeManifest 1 calls
1> 2 ms GetCopyToOutputDirectoryItems 1 calls
1> 4 ms C:/Development/Apps/FieldService-trunk/OverAllField.XamarinAndroid/OverAllField.XamarinAndroid.DataLayer/OverAllField.XamarinAndroid.DataLayer.csproj 3 calls
1> 1 ms GetTargetPath 1 calls
1> 0 ms GetNativeManifest 1 calls
1> 3 ms GetCopyToOutputDirectoryItems 1 calls
1> 40103 ms C:/Development/Apps/FieldService-trunk/OverAllField.XamarinAndroid/OverAllField.XamarinAndroid.ServiceClient/OverAllField.XamarinAndroid.ServiceClient.csproj 1 calls
1>
1>Target Performance Summary:
1> 0 ms Compile 1 calls
1> 0 ms ResolveReferences 1 calls
1> 0 ms BclBuildGetTargetPath 1 calls
1> 0 ms EnsureNuGetPackageBuildImports 1 calls
1> 0 ms AfterResGen 1 calls
1> 0 ms ResolveCodeAnalysisRuleSet 1 calls
1> 0 ms _CreatePropertiesCache 1 calls
1> 0 ms _SetTargetFrameworkMonikerAttribute 1 calls
1> 0 ms BeforeResGen 1 calls
1> 0 ms ModifyUnitTestPlatformVersion 1 calls
1> 0 ms CreateCustomManifestResourceNames 1 calls
1> 0 ms BclBuildAddProjectReferenceProperties 1 calls
1> 0 ms _ResolveMonoAndroidFramework 1 calls
1> 0 ms UpdateAndroidResources 1 calls
1> 0 ms CoreBuild 1 calls
1> 0 ms ExpressionBuildExtension 1 calls
1> 0 ms _CheckTargetFramework 1 calls
1> 0 ms _CopyAppConfigFile 1 calls
1> 0 ms Build 1 calls
1> 0 ms DeleteBuildInfoFile 1 calls
1> 0 ms CleanXsdCodeGen 1 calls
1> 0 ms _SetupInstantRun 1 calls
1> 0 ms GetFrameworkPaths 1 calls
1> 0 ms DeleteBuildInfoResource 1 calls
1> 0 ms _AddAndroidDefines 1 calls
1> 0 ms BuildOnlySettings 1 calls
1> 0 ms ComputeIntermediateSatelliteAssemblies 1 calls
1> 0 ms ValidationExtension 1 calls
1> 0 ms AfterCompile 1 calls
1> 0 ms _CheckInstantRunCondition 1 calls
1> 0 ms _GenerateSatelliteAssemblyInputs 1 calls
1> 0 ms _SetupApplicationJavaClass 1 calls
1> 0 ms _SetupDesignTimeBuildForIntellisense 1 calls
1> 0 ms SetWin32ManifestProperties 1 calls
1> 0 ms CreateSatelliteAssemblies 1 calls
1> 0 ms _CopySourceItemsToOutputDirectory 1 calls
1> 0 ms GetInstalledSDKLocations 1 calls
1> 0 ms _AddAndroidEnvironmentToCompile 1 calls
1> 0 ms _CheckForContent 1 calls
1> 0 ms _SeparateAppExtensionReferences 1 calls
1> 0 ms AfterResolveReferences 1 calls
1> 0 ms BeforeResolveReferences 1 calls
1> 0 ms PrepareResources 1 calls
1> 0 ms ResolveSDKReferences 1 calls
1> 0 ms _CheckForDeletedResourceFile 1 calls
1> 0 ms BeforeCompile 1 calls
1> 0 ms UpdateAndroidAssets 1 calls
1> 0 ms DesignTimeXamlMarkupCompilation 1 calls
1> 0 ms _AddMultiDexDependencyJars 1 calls
1> 0 ms PrepareForRun 1 calls
1> 0 ms ResGen 1 calls
1> 0 ms _GenerateAndroidAssetsDir 1 calls
1> 0 ms AfterBuild 1 calls
1> 0 ms BclBuildSetRunningFullBuild 1 calls
1> 0 ms GetNativeManifest 2 calls
1> 0 ms ExpandSDKReferences 1 calls
1> 0 ms GenerateTargetFrameworkMonikerAttribute 1 calls
1> 0 ms _GenerateAndroidResourceDir 1 calls
1> 0 ms CreateManifestResourceNames 1 calls
1> 0 ms BeforeBuild 1 calls
1> 0 ms _GenerateCompileInputs 1 calls
1> 0 ms _SetupDesignTimeBuildForBuild 1 calls
1> 0 ms PrepareResourceNames 1 calls
1> 0 ms _AddNativeLibraryArchiveToCompile 1 calls
1> 1 ms GetCopyToOutputDirectoryXamlAppDefs 3 calls
1> 1 ms _GenerateJavaDesignerForComponent 1 calls
1> 1 ms _CollectMonoAndroidOutputs 1 calls
1> 1 ms _SetEmbeddedWin32ManifestProperties 1 calls
1> 1 ms CoreResGen 1 calls
1> 1 ms _ValidateLinkMode 1 calls
1> 1 ms _GetLibraryImports 1 calls
1> 1 ms _CheckForCompileOutputs 1 calls
1> 1 ms _ReadPropertiesCache 1 calls
1> 1 ms GetTargetPath 2 calls
1> 1 ms _ComputeAndroidResourcePaths 1 calls
1> 1 ms SetBuildInfoDefaults 1 calls
1> 1 ms SplitResourcesByCulture 1 calls
1> 1 ms _SplitProjectReferencesByFileExistence 3 calls
1> 1 ms GenerateCompiledExpressionsTempFile 1 calls
1> 1 ms BclBuildDetermineReferencesToRedirect 1 calls
1> 1 ms _GetReferenceAssemblyPaths 1 calls
1> 1 ms PreXsdCodeGen 1 calls
1> 2 ms _RegisterMdbFilesWithFileWrites 1 calls
1> 2 ms PrepareForBuild 1 calls
1> 2 ms _BuildSdkCache 1 calls
1> 2 ms _CalculateAdditionalResourceCacheDirectories 1 calls
1> 2 ms AssignProjectConfiguration 1 calls
1> 2 ms _CreateAdditionalResourceCache 1 calls
1> 2 ms GetReferenceAssemblyPaths 1 calls
1> 3 ms _GetAdditionalResourcesFromAssemblies 1 calls
1> 3 ms _CheckDuplicateJavaLibraries 1 calls
1> 3 ms _CollectAdditionalResourceFiles 1 calls
1> 3 ms _ExtractLibraryProjectImports 1 calls
1> 3 ms _ComputeAndroidAssetsPaths 1 calls
1> 3 ms AssignTargetPaths 3 calls
1> 3 ms CopyFilesToOutputDirectory 1 calls
1> 4 ms _ValidateResourceCache 1 calls
1> 4 ms _ValidateAndroidPackageProperties 1 calls
1> 5 ms IncrementalClean 1 calls
1> 7 ms _ResolveMonoAndroidSdks 1 calls
1> 9 ms _CheckForInvalidConfigurationAndPlatform 3 calls
1> 10 ms GetCopyToOutputDirectoryItems 3 calls
1> 11 ms _CopyFilesMarkedCopyLocal 1 calls
1> 11 ms _CleanGetCurrentAndPriorFileWrites 1 calls
1> 12 ms _AddLibraryProjectsEmbeddedResourceToProject 1 calls
1> 18 ms ImplicitlyExpandDesignTimeFacades 1 calls
1> 29 ms _BuildLibraryImportsCache 1 calls
1> 41 ms ResolveProjectReferences 1 calls
1> 70 ms _SetLatestTargetFrameworkVersion 1 calls
1> 114 ms _ResolveLibraryProjectImports 1 calls
1> 138 ms ResolveAssemblyReferences 1 calls
1> 207 ms _UpdateAndroidResgen 1 calls
1> 356 ms _GetPrimaryCpuAbi 1 calls
1> 803 ms CoreCompile 1 calls
1> 38202 ms _BuildAdditionalResourcesCache 1 calls
1>
1>Task Performance Summary:
1> 0 ms CreateCSharpManifestResourceName 1 calls
1> 0 ms Delete 2 calls
1> 0 ms FindAppConfigFile 1 calls
1> 0 ms ResolveCodeAnalysisRuleSet 1 calls
1> 0 ms CallTarget 1 calls
1> 0 ms ResolveNonMSBuildProjectOutput 1 calls
1> 0 ms AssignCulture 1 calls
1> 1 ms GetFrameworkPath 1 calls
1> 1 ms GetAndroidPackageName 1 calls
1> 1 ms AssignProjectConfiguration 1 calls
1> 1 ms ReadImportedLibrariesCache 1 calls
1> 1 ms ReadLinesFromFile 2 calls
1> 1 ms GetAppSettingsDirectory 1 calls
1> 1 ms AssignTargetPath 18 calls
1> 1 ms CreateTemporaryDirectory 1 calls
1> 1 ms GetReferenceAssemblyPaths 2 calls
1> 2 ms Message 20 calls
1> 2 ms CalculateAdditionalResourceCacheDirectories 1 calls
1> 2 ms GetJavaPlatformJar 1 calls
1> 2 ms MakeDir 2 calls
1> 2 ms WriteLinesToFile 1 calls
1> 2 ms ConvertToAbsolutePath 1 calls
1> 3 ms RemoveDuplicates 2 calls
1> 3 ms CopyIfChanged 1 calls
1> 3 ms CheckDuplicateJavaLibraries 1 calls
1> 3 ms AndroidComputeResPaths 2 calls
1> 3 ms ReadLibraryProjectImportsCache 1 calls
1> 3 ms CreateProperty 41 calls
1> 4 ms CopyGeneratedJavaResourceClasses 1 calls
1> 4 ms GetExtraPackages 1 calls
1> 4 ms GetAndroidDefineConstants 1 calls
1> 4 ms CreateAndroidResourceStamp 1 calls
1> 5 ms FindUnderPath 5 calls
1> 5 ms ReadAdditionalResourcesFromAssemblyCache 2 calls
1> 5 ms CreateResgenManifest 1 calls
1> 6 ms CreateItem 23 calls
1> 6 ms RemoveDirFixed 1 calls
1> 12 ms CreateManagedLibraryResourceArchive 1 calls
1> 14 ms Copy 3 calls
1> 16 ms ConvertResourcesCases 1 calls
1> 21 ms GenerateResourceDesigner 1 calls
1> 28 ms GetImportedLibraries 1 calls
1> 49 ms MSBuild 3 calls
1> 49 ms ReadResolvedSdksCache 1 calls
1> 114 ms ResolveLibraryProjectImports 1 calls
1> 137 ms ResolveAssemblyReference 1 calls
1> 142 ms Aapt 1 calls
1> 347 ms GetPrimaryCpuAbi 1 calls
1> 792 ms Csc 1 calls
1> 38201 ms GetAdditionalResourcesFromAssemblies 1 calls
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:40.09
Hay un segundo resumen (el registro tiene 2 de estos resúmenes de alguna manera), pero no puedo incluirlo en la pregunta porque excedería el límite del carácter del cuerpo. Versión más pequeña del segundo resumen:
2>Project Performance Summary:
2> 6 ms C:/Development/Apps/FieldService-trunk/OverAllField.XamarinAndroid/OverAll.App.Shared/OverAll.App.Shared.csproj 5 calls
2> 0 ms GetTargetPath 1 calls
2> 0 ms GetNativeManifest 1 calls
2> 1 ms GetCopyToOutputDirectoryItems 1 calls
2> 5 ms GetBuiltProjectOutputRecursive 2 calls
2> 9 ms C:/Development/Apps/FieldService-trunk/OverAllField.XamarinAndroid/OverAllField.XamarinAndroid.BarcodeScanner/OverAllField.XamarinAndroid.BarcodeScanner.csproj 4 calls
2> 0 ms GetTargetPath 1 calls
2> 2 ms GetNativeManifest 1 calls
2> 3 ms GetCopyToOutputDirectoryItems 1 calls
2> 4 ms GetBuiltProjectOutputRecursive 1 calls
2> 17 ms C:/Development/Apps/FieldService-trunk/OverAllField.XamarinAndroid/OverAllField.XamarinAndroid.DataLayer/OverAllField.XamarinAndroid.DataLayer.csproj 5 calls
2> 9 ms GetTargetPath 1 calls
2> 1 ms GetNativeManifest 1 calls
2> 2 ms GetCopyToOutputDirectoryItems 1 calls
2> 5 ms GetBuiltProjectOutputRecursive 2 calls
2> 46 ms C:/Development/Apps/FieldService-trunk/OverAllField.XamarinAndroid/OverAllField.XamarinAndroid.ServiceClient/OverAllField.XamarinAndroid.ServiceClient.csproj 4 calls
2> 21 ms GetTargetPath 1 calls
2> 0 ms GetNativeManifest 1 calls
2> 2 ms GetCopyToOutputDirectoryItems 1 calls
2> 23 ms GetBuiltProjectOutputRecursive 1 calls
2> 87736 ms C:/Development/Apps/FieldService-trunk/OverAllField.XamarinAndroid/OverAllField.Android/OverAllField.XamarinAndroid.csproj 1 calls
Resumen del rendimiento del segundo objetivo: (se eliminó cualquier cosa <1000 ms para reducir caracteres)
2> 1955 ms _GenerateJavaStubs 1 calls
2> 3083 ms _CreateBaseApk 1 calls
2> 3467 ms _UpdateAndroidResgen 1 calls
2> 8944 ms _CompileToDalvikWithDx 1 calls
2> 66321 ms _BuildAdditionalResourcesCache 1 calls
Resumen de rendimiento de la segunda tarea: (nuevamente, se eliminó cualquier cosa <1000 ms para reducir los caracteres)
2> 1245 ms GenerateJavaStubs 1 calls
2> 2334 ms ConvertResourcesCases 3 calls
2> 4637 ms Aapt 2 calls
2> 8941 ms CompileToDalvik 1 calls
2> 66320 ms GetAdditionalResourcesFromAssemblies 1 calls
2>
2>Build succeeded.
2>
2>Time Elapsed 00:01:27.73
Registro de compilación de diagnóstico completo here
ACTUALIZACIÓN 4
Registro de compilación de diagnóstico completo con soporte para Android versión 23 here
Hay una diferencia significativa entre los tiempos de construcción. Versión de soporte 24:
1>Project Performance Summary:
1> 40103 ms C:/Development/Apps/trunk/App.Droid/App.Droid.ServiceClient/App.Droid.ServiceClient.csproj 1 calls
...
2>Project Performance Summary:
2> 87736 ms C:/Development/Apps/trunk/App.Droid/App.Droid/App.Droid.csproj 1 calls
Versión de soporte 23:
1>Project Performance Summary:
1> 962 ms C:/Development/Apps/trunk-r1029/App.Droid/App.Droid.ServiceClient/App.Droid.ServiceClient.csproj 1 calls
2>Project Performance Summary:
2> 18214 ms C:/Development/Apps/trunk-r1029/App.Droid/App.Droid/App.Droid.csproj 1 calls
Ambos están diseñados con Android 7.0 y la misma versión de Xamarin, la única diferencia es la versión de la biblioteca de soporte de Android. ¿No es eso un gran aumento?
¡Gracias por adelantado!