Свойства сборки
Свойства MSBuild управляют поведением целевых объектов. Они указываются в файле проекта, например MyApp.csproj, в MSBuild PropertyGroup.
AdbTarget
Свойство $(AdbTarget)
указывает целевое устройство Android, на котором может быть установлен или удален пакет Android.
Значение этого свойства совпадает со значением параметра adb
целевого устройства.
AfterGenerateAndroidManifest
Целевые объекты, перечисленные в этом свойстве, будут запускаться непосредственно после внутреннего целевого объекта _GenerateJavaStubs
, в котором создается файл AndroidManifest.xml
в $(IntermediateOutputPath)
. Если вы хотите внести изменения в созданный файл AndroidManifest.xml
, это можно сделать с помощью этой точки расширения.
Добавлено в Xamarin.Android версии 9.4.
AndroidAapt2CompileExtraArgs
Задает параметры командной строки для передачи в команду компиляции aapt2 при обработке ресурсов и ресурсов Android.
Свойство добавлено в Xamarin.Android версии 9.1.
AndroidAapt2LinkExtraArgs
Задает параметры командной строки для передачи команде ссылки aapt2 при обработке ресурсов и ресурсов Android.
Свойство добавлено в Xamarin.Android версии 9.1.
AndroidAddKeepAlives
Логическое свойство, определяющее, будет ли компоновщик вставлять вызовы GC.KeepAlive()
внутри проектов привязки для предотвращения преждевременного сбора объектов.
Значение по умолчанию — True
для сборок конфигурации выпуска.
Это свойство было добавлено в Xamarin.Android 11.2.
AndroidAotAdditionalArguments
Строковое свойство, позволяющее передавать параметры компилятору Mono во время Aot
задачи для проектов, имеющих $(AndroidEnableProfiledAot)
либо $(AotAssemblies)
заданные значения true
.
Строковое значение этого свойства добавляется в файл ответов при вызове кросс-компилятора Mono.
Как правило, это свойство следует оставлять пустым. Но в некоторых особых случаях оно может обеспечить полезные гибкие возможности.
Свойство $(AndroidAotAdditionalArguments)
отличается от связанного $(AndroidExtraAotOptions)
свойства; $(AndroidAotAdditionalArguments)
передает полные автономные параметры, разделенные пробелами, например --verbose
или --debug
компилятору AOT, в то время как $(AndroidExtraAotOptions)
содержит аргументы, разделенные запятыми, которые являются частью --aot
параметра компилятора AOT.
AndroidAotCustomProfilePath
Файл, который aprofutil
должен создать для хранения данных профилировщика.
AndroidAotProfiles
Строковое свойство, которое позволяет разработчику добавлять профили AOT из командной строки. Это список абсолютных путей с запятой или запятыми. Добавлено в Xamarin.Android версии 10.1.
AndroidAotProfilerPort
Порт, к которому aprofutil
должен подключаться при получении данных профилирования.
AndroidAotEnableLazyLoad
Включите отложенную (отложенную) загрузку сборок AOT-d вместо предварительной загрузки их при запуске. Значение по умолчанию — True
для сборок выпуска с любой формой AOT.
Представлено в .NET 6.
AndroidApkDigestAlgorithm
Строковое значение, указывающее алгоритм дайджеста для использования jarsigner -digestalg
.
Значение по умолчанию — SHA-256
. В Xamarin.Android 10.0 и более ранних версий по умолчанию использовалось значение SHA1
.
Добавлено в Xamarin.Android версии 9.4.
AndroidApkSignerAdditionalArguments
Строковое свойство, позволяющее разработчику предоставлять аргументы средству apksigner
.
Свойство добавлено в Xamarin.Android версии 8.2.
AndroidApkSigningAlgorithm
Строковое значение, указывающее алгоритм подписи для использования jarsigner -sigalg
.
Значение по умолчанию — SHA256withRSA
. В Xamarin.Android 10.0 и более ранних версий по умолчанию использовалось значение md5withRSA
.
Свойство добавлено в Xamarin.Android версии 8.2.
AndroidApplication
Логическое значение, указывающее, для чего предназначен проект: для приложения Android (True
) или для библиотеки Android (False
или не задано).
Только один проект со значением <AndroidApplication>True</AndroidApplication>
может присутствовать в пакете Android. (К сожалению, это требование не проверяется, что может привести к тонким и странным ошибкам в отношении ресурсов Android.)
AndroidApplicationJavaClass
Полное имя класса Java для использования вместо android.app.Application
, когда класс наследуется от Android.App.Application.
Свойство $(AndroidApplicationJavaClass)
обычно задается другими свойствами, такими как $(AndroidEnableMultiDex)
свойство MSBuild.
Переменная добавлена в Xamarin.Android версии 6.1.
AndroidBinUtilsPath
Путь к каталогу, который содержит средства binutil для Android, такие как собственный компоновщик ld
и собственный ассемблер as
. Эти средства включены в установку Xamarin.Android.
Значение по умолчанию — $(MonoAndroidBinDirectory)\binutils\bin\
.
Добавлено в Xamarin.Android версии 10.0.
AndroidBoundExceptionType
Строковое значение, которое указывает способ распространения исключений, когда предоставленный Xamarin.Android тип реализует тип или интерфейс .NET в формате типов Java, например Android.Runtime.InputStreamInvoker
и System.IO.Stream
или Android.Runtime.JavaDictionary
и System.Collections.IDictionary
.
Java
: исходный тип исключения Java распространяется как есть.Java
означает, что, например,InputStreamInvoker
неправильно реализуетSystem.IO.Stream
API, так какJava.IO.IOException
его можно создатьStream.Read()
вместоSystem.IO.IOException
.Java
— это поведение распространения исключений во всех выпусках Xamarin.Android, включая Xamarin.Android 13.0.System
: исходный тип исключения Java перехватывается и упаковывается в соответствующий тип исключения .NET.System
означает, что, например,InputStreamInvoker
правильно реализуетSystem.IO.Stream
иStream.Read()
не будет вызыватьJava.IO.IOException
экземпляры. (Вместо этого может вызыватьсяSystem.IO.IOException
содержащийJava.IO.IOException
Exception.InnerException
значение.)System
— значение по умолчанию в .NET 6.0.
Добавлено в Xamarin.Android версии 10.2.
AndroidBoundInterfacesContainConstants
Логическое свойство, определяющее, будут ли поддерживаться константы привязки в интерфейсах, или обходной путь создания IMyInterfaceConsts
класса.
Значение по умолчанию используется True
в .NET 6 и False
для устаревших версий.
AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods
Логическое свойство, которое будет поддерживаться по умолчанию и статическим элементам в интерфейсах, или старое обходное решение для создания класса с братом, содержащего статические элементы, например abstract class MyInterface
.
Значение по умолчанию используется True
в .NET 6 и False
для устаревших версий.
AndroidBoundInterfacesContainTypes
Логическое свойство, которое будет поддерживаться типами, вложенными в интерфейсы, или обходным решением для создания не вложенных типов, таких как IMyInterfaceMyNestedClass
.
Значение по умолчанию используется True
в .NET 6 и False
для устаревших версий.
AndroidBuildApplicationPackage
Логическое значение, указывающее, следует ли создавать и подписывать пакет (APK-файл). Задание этого значения True
эквивалентно использованию SignAndroidPackage
Целевой объект сборки.
Поддержка этого свойства была добавлена в Xamarin.Android после версии 7.1.
По умолчанию это свойство имеет значение False
.
AndroidBundleConfigurationFile
Указывает имя файла, который будет использовать в качестве файла конфигурацииbundletool
при создании пакета приложения Android. Этот файл управляет некоторыми аспектами создания пакетов APK из пакета, например определяет, по каким характеристикам пакет разбивается для создания APK.
Xamarin.Android автоматически настраивает некоторые из этих параметров, в том числе список расширений файлов, чтобы оставить незапечатанным.
Это свойство используется, только если $(AndroidPackageFormat)
имеет значение aab
.
Добавлено в Xamarin.Android версии 10.3.
AndroidBundleToolExtraArgs
Задает параметры командной строки для передачи команде bundletool при сборке пакетов приложений.
Это свойство было добавлено в Xamarin.Android 11.3.
AndroidClassParser
Строковое свойство, которое управляет .jar
анализом файлов. Возможные значения включают:
class-parse: использует
class-parse.exe
для непосредственного синтаксического анализа байт-кода Java без использования виртуальной машины Java.jar2xml: использует
jar2xml.jar
для отражения Java, чтобы извлекать типы и элементы из файла.jar
.
Ниже приведены преимущества class-parse
над jar2xml
.
class-parse
может извлекать имена параметров из байт-кода Java, содержащего символы отладки (байт-код, скомпилированный сjavac -g
).class-parse
не пропускает классы, наследуемые от членов неразрешимых типов или содержащие их.
Добавлено в Xamarin.Android версии 6.0.
Значение по умолчанию в jar2xml
Xamarin.Android и class-parse
.NET 6 и выше.
jar2xml
Поддержка устаревшей и jar2xml
удалена в .NET 6.
AndroidCodegenTarget
Строковое свойство, которое управляет целевым объектом ABI создания кода. Возможные значения включают:
XamarinAndroid: использует API привязки JNI, присутствующих с помощью Mono для Android 1.0. Сборки привязки, созданные с помощью Xamarin.Android 5.0 или более поздней версии, можно запускать только в Xamarin.Android 5.0 или более поздней версии (добавление API/ABI), но источник совместим с предыдущими версиями продукта.
XAJavaInterop1: использует Java.Interop для вызова JNI. Сборки привязки с
XAJavaInterop1
можно создавать и выполнять только с помощью Xamarin.Android 6.1 или более поздней версии. Xamarin.Android 6.1 и более поздних версий связываетMono.Android.dll
с этим значением.
Ниже приведены преимущества XAJavaInterop1
.
Сборки меньшего размера.
Кэширование
jmethodID
для вызова методаbase
при условии, что все прочие типы привязки в иерархии наследования созданы с помощьюXAJavaInterop1
или более поздней версии.Кэширование
jmethodID
конструкторов JCW для управляемых подклассов.
Значение по умолчанию — XAJavaInterop1
.
Значение XamarinAndroid
устарело и XamarinAndroid
перестанет поддерживаться в .NET 6.
AndroidCreatePackagePerAbi
Логическое свойство, определяющее, должен ли быть создан набор файлов -один на ABI, указанный в $(AndroidSupportedAbis)
--, вместо поддержки всех API в одном .apk
.
См. также руководство Создание пакетов APK для конкретного ABI.
AndroidCreateProguardMappingFile
Логическое свойство, которое управляет созданием файла сопоставления proguard в рамках процесса сборки.
Добавление следующего файла в csproj приведет к созданию файла и использует AndroidProguardMappingFile
свойство для управления расположением окончательного файла сопоставления.
<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>
При создании .aab
файлов файл сопоставления автоматически включается в пакет. Нет необходимости отправлять его в Google Play Store вручную. При использовании .apk
файлов AndroidProguardMappingFile
необходимо отправить вручную.
Значение по умолчанию используется True
при использовании $(AndroidLinkTool)
=r8.
Добавлено в Xamarin.Android 12.3.
AndroidDebugKeyAlgorithm
Указывает алгоритм по умолчанию для debug.keystore
. Значение по умолчанию — RSA
.
AndroidDebugKeyValidity
Указывает срок действия по умолчанию для debug.keystore
. Значение по умолчанию — 10950
или 30 years
30 * 365
.
AndroidDebugStoreType
Указывает формат файла хранилища ключей, используемый для debug.keystore
. По умолчанию имеет значение pkcs12
.
Добавлено в Xamarin.Android версии 10.2.
AndroidDeviceUserId
Разрешает развертывание и отладку приложения с использованием гостевой или рабочей учетной записи. Значением является значение uid
, полученное из следующей команды adb:
adb shell pm list users
Приведенная выше команда вернет следующие данные:
Users:
UserInfo{0:Owner:c13} running
UserInfo{10:Guest:404}
uid
— первое целочисленное значение. В приведенных выше выходных данных они 0
и 10
.
Свойство $(AndroidDeviceUserId)
было добавлено в Xamarin.Android 11.2.
AndroidDexTool
Свойство стиля перечисления с допустимыми значениями dx
или d8
. Указывает, какой DEX-компилятор Android используется во время сборки Xamarin.Android.
Значение по умолчанию — dx
. Ознакомьтесь с нашей документацией по D8 и R8.
AndroidEnableDesugar
Логическое свойство, которое определяет, включен ли desugar
. В настоящее время Android не поддерживает все функции Java 8, а цепочка инструментов по умолчанию реализует новые языковые функции, выполняя преобразования байт-кода, вызываемые desugar
в выходных данных компилятора javac
. Значение по умолчанию используется и используется$(AndroidDexTool)
=d8
.True
False
$(AndroidDexTool)=dx
AndroidEnableGooglePlayStoreChecks
Логическое свойство, позволяющее разработчикам отключить следующие проверки Google Play Store: XA1004, XA1005 и XA1006. Отключение этих проверок полезно для разработчиков, которые не нацелены на Google Play Store и не хотят запускать эти проверки.
Добавлено в Xamarin.Android версии 9.4.
AndroidEnableMultiDex
Логическое свойство, которое определяет, будет ли поддерживаться Multi-DEX в окончательном файле .apk
.
Поддержка этого свойства была добавлена в Xamarin.Android версии 5.1.
По умолчанию это свойство имеет значение False
.
AndroidEnablePreloadAssemblies
Логическое свойство, которое определяет, загружаются ли все управляемые сборки, упакованные в пакет приложения, во время запуска процесса или нет.
Если задано значение True
, все сборки, объединенные в пакет приложения, будут загружены во время запуска процесса до вызова кода приложения.
Предварительная загрузка сборок — это то, что делает Xamarin.Android.
Если задано значение False
, сборки загружаются только по мере необходимости.
Загрузка сборок по мере необходимости позволяет приложениям запускаться быстрее, а также более согласованы с семантикой .NET для настольных компьютеров.
Чтобы убедиться в ускорении работы, добавьте timing
в системное свойство debug.mono.log
и в adb logcat
найдите сообщение Finished loading assemblies: preloaded
.
Приложения или библиотеки, которые используют внедрение зависимостей, могут требовать, чтобы это свойствоTrue
, в свою очередь, требовало, чтобы AppDomain.CurrentDomain.GetAssemblies()
возвращать все сборки в пакете приложений, даже если сборка не потребуется.
По умолчанию это значение будет задано True
для Xamarin.Android и будет присвоено значение False
для сборок .NET 6+.
Свойство добавлено в Xamarin.Android версии 9.2.
AndroidEnableProfiledAot
Логическое свойство, которое определяет, используются ли профили AOT во время компиляции Ahead Of Time.
Профили перечислены в группе элементов @(AndroidAotProfile)
Группа элементов. Эта ItemGroup содержит профили по умолчанию. Ее можно переопределить, удалив существующие и добавив собственные профили AOT.
Поддержка этого свойства была добавлена в Xamarin.Android 9.4.
По умолчанию это свойство имеет значение False
.
AndroidEnableSGenConcurrent
Логическое свойство, которое определяет, будет ли использоваться параллельный сборщик мусора Mono.
Поддержка этого свойства была добавлена в Xamarin.Android версии 7.2.
По умолчанию это свойство имеет значение False
.
AndroidErrorOnCustomJavaObject
Логическое свойство, которое определяет, можно ли реализовать типы Android.Runtime.IJavaObject
без наследования от Java.Lang.Object
или Java.Lang.Throwable
:
class BadType : IJavaObject {
public IntPtr Handle {
get {return IntPtr.Zero;}
}
public void Dispose()
{
}
}
Если значение равно true, такие типы будут вызывать ошибку XA4212. Если значение false, будет сформировано предупреждение XA4212.
Поддержка этого свойства добавлена в Xamarin.Android версии 8.1.
По умолчанию это свойство имеет значение True
.
AndroidExplicitCrunch
Больше не поддерживается в Xamarin.Android 11.0.
AndroidExtraAotOptions
Строковое свойство, позволяющее передавать параметры компилятору Mono во время Aot
задачи для проектов, имеющих $(AndroidEnableProfiledAot)
либо $(AotAssemblies)
заданные значения true
.
Строковое значение этого свойства добавляется в файл ответов при вызове кросс-компилятора Mono.
Как правило, это свойство следует оставлять пустым. Но в некоторых особых случаях оно может обеспечить полезные гибкие возможности.
Свойство $(AndroidExtraAotOptions)
отличается от связанного $(AndroidAotAdditionalArguments)
свойства; $(AndroidAotAdditionalArguments)
помещает аргументы, разделенные запятыми, в --aot
параметр компилятора Mono. В свою очередь, $(AndroidExtraAotOptions)
передает в компилятор разделенные пробелами полные автономные параметры, такие как --verbose
или --debug
.
Добавлено в Xamarin.Android версии 10.2.
AndroidFastDeploymentType
Список разделенных двоеточиями (:
) значений для управления типами, которые можно развернуть в каталоге быстрого развертывания на целевом устройстве, если свойство MSBuild $(EmbedAssembliesIntoApk)
имеет значение False
. Если ресурс быстро развернут, он не встраивается в создаваемый файл .apk
, что может ускорить развертывание. (Чем быстрее развертывается, тем реже .apk
необходимо перестроиться, а процесс установки может быть быстрее.) Допустимые значения:
Assemblies
: развертывание сборок приложения.Dexes
: развертывание файлов.dex
, собственных библиотек и карт типов. ЭтоDexes
значение можно использовать только на устройствах под управлением Android 4.4 или более поздней версии (API-19).
Значение по умолчанию — Assemblies
.
Поддержка быстро развертываемых ресурсов и активов через эту систему была удалена в фиксации f0d565fe. Это было вызвано тем, что для работы требуются устаревшие API.
Экспериментальное. Это свойство было добавлено в Xamarin.Android 6.1.
AndroidFragmentType
Указывает полный тип по умолчанию, используемый для всех элементов макета <fragment>
при создании кода привязок макета. Значение по умолчанию — стандартный тип Android Android.App.Fragment
.
AndroidGenerateJniMarshalMethods
Логическое свойство, которое позволяет создавать методы маршала JNI в рамках процесса сборки. Это существенно сокращает использование System.Reflection
во вспомогательном коде привязки.
Значение по умолчанию — False
. Если разработчики хотят использовать новую функцию маршалов JNI, они могут задать
<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
в собственном файле .csproj
. Вы также можете указать свойства в командной строке с помощью параметра
/p:AndroidGenerateJniMarshalMethods=True
Экспериментальное. Свойство добавлено в Xamarin.Android версии 9.2.
Значение по умолчанию — False
.
AndroidGenerateJniMarshalMethodsAdditionalArguments
Строковое свойство, которое можно использовать для добавления параметров в jnimarshalmethod-gen.exe
вызов и полезно для отладки, чтобы такие параметры, как -v
, -d
или --keeptemp
можно использовать.
Значение по умолчанию — пустая строка. Его можно задать в файле .csproj
или в командной строке. Например:
<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>
или:
/p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"
Свойство добавлено в Xamarin.Android версии 9.2.
AndroidGenerateLayoutBindings
Включает создание кода программной части макета, если присвоить значение true
, или полностью отключает его, если задать значение false
. Значение по умолчанию — false
.
AndroidGenerateResourceDesigner
Значение по умолчанию — true
. Если задано значение false
, отключает создание Resource.designer.cs
.
Добавлен в .NET 6 RC 1. Не поддерживается в Xamarin.Android.
AndroidHttpClientHandlerType
Управляет стандартной реализацией System.Net.Http.HttpMessageHandler
, которую будет использовать конструктор по умолчанию System.Net.Http.HttpClient
. Значение — имя типа с указанием сборки подкласса HttpMessageHandler
, подходящее для использования с System.Type.GetType(string)
.
Наиболее распространенные значения для этого свойства:
Xamarin.Android.Net.AndroidClientHandler
: используйте API Java для Android для выполнения сетевых запросов. Использование API Java позволяет получить доступ к URL-адресам TLS 1.2, если базовая версия Android поддерживает TLS 1.2. Только Android 5.0 и более поздних версий обеспечивает надежную поддержку TLS 1.2 через Java.Соответствует параметру Android на страницах свойств Visual Studio и параметру AndroidClientHandler на страницах свойств Visual Studio для Mac.
Мастер создания проектов выбирает этот вариант для новых проектов, если указана минимальная версия AndroidAndroid 5.0 (Lollipop) или выше в Visual Studio или если для целевых платформ установлено значение Последняя и самая поздняя в Visual Studio для Mac.
Отмена набора или пустой строки, эквивалентной
System.Net.Http.HttpClientHandler, System.Net.Http
Соответствует параметру Default на страницах свойств Visual Studio.
Мастер создания проектов выбирает этот параметр для новых проектов, если указана минимальная версия AndroidAndroid 4.4.87 или более ранняя в Visual Studio или если для целевых платформ установлено Современная разработка или Максимальная совместимость в Visual Studio для Mac.
System.Net.Http.HttpClientHandler, System.Net.Http
: используйте управляемыйHttpMessageHandler
.Соответствует управляемому параметру на страницах свойств Visual Studio.
Примечание.
Если требуется поддержка TLS 1.2 в версиях Android ниже 5.0 или если поддержка TLS 1.2 необходима для System.Net.WebClient
и связанных API, следует использовать $(AndroidTlsProvider)
.
Примечание.
$(AndroidHttpClientHandlerType)
Поддержка свойства работает путем задания переменной XA_HTTP_CLIENT_HANDLER_TYPE
среды.
$XA_HTTP_CLIENT_HANDLER_TYPE
Значение, найденное в файле с действием сборки@(AndroidEnvironment)
будет иметь приоритет.
Переменная добавлена в Xamarin.Android версии 6.1.
AndroidIncludeWrapSh
Логическое значение, указывающее, следует ли упаковать скриптwrap.sh
оболочки Android в APK. Значение по умолчанию, false
так как скрипт-оболочка может значительно повлиять на способ запуска приложения и работы, и скрипт должен быть включен только при необходимости, например при отладке или изменении поведения запуска приложения или среды выполнения.
Скрипт добавляется в проект с помощью действия сборки ,@(AndroidNativeLibrary)
Действие сборки, так как оно помещается в тот же каталог, что и собственные библиотеки для конкретной архитектуры, и должно быть названо wrap.sh
.
Самый простой способ указать путь к скрипту wrap.sh
— это разместить его в каталоге, имя которого совпадает с конечной архитектурой. Это сработает только в том случае, если у вас только один вариант wrap.sh
для архитектуры:
<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />
Однако если в проекте требуется более одного решения wrap.sh
для каждой архитектуры, этот подход не будет работать.
Вместо этого в таких случаях для указания имени можно использовать метаданные Link
AndroidNativeLibrary
:
<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
<Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>
Если используются метаданные Link
, путь, указанный в его значении, должен представлять собой допустимый путь к собственной библиотеке для конкретной архитектуры относительно корневого каталога APK. Формат пути — lib\ARCH\wrap.sh
, где ARCH
может быть одним из следующего:
arm64-v8a
armeabi-v7a
x86_64
x86
AndroidJavadocVerbosity
Указывает, как при импорте документации Javadoc в проектах привязки следует использовать подробные комментарии к XML-документации по C#.
Требуется использование @(JavaSourceJar)
действие сборки.
Свойство $(AndroidJavadocVerbosity)
имеет тип перечисления full
, с возможными значениями или intellisense
:
intellisense
: только примечания XML:<exception/>
,<param/>
,<returns/>
.<summary/>
full
: имитируемыеintellisense
элементы, а также<remarks/>
<seealso/>
все остальное, что поддерживается.
Значение по умолчанию — intellisense
.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
AndroidKeyStore
Логическое значение, указывающее, следует ли использовать пользовательские сведения о подписи. Значение по умолчанию — False
. Это означает, что для подписания пакетов будет использоваться ключ подписи отладки по умолчанию.
AndroidLaunchActivity
Действие Android для запуска.
AndroidLinkMode
Указывает, какой тип компоновки должен быть применен для сборок, содержащихся в пакете Android. Используется только в проектах приложений Android. Значение по умолчанию: SdkOnly. Допустимые значения:
None: компоновка не будет выполнена.
SdkOnly: компоновка будет выполнена только для библиотеки базовых классов, но не сборок пользователя.
Full: компоновка будет выполнена для библиотеки базовых классов и сборок пользователя.
Примечание.
Использование для свойства
AndroidLinkMode
значения Full часто приводит к ненадлежащей работе приложений, особенно при использовании отражения. Используйте это значение, только если это действительно необходимо.
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
AndroidLinkResources
Когда true
система сборки будет связывать вложенные типы класса Resource.Designer.cs Resource
во всех сборках. Код IL, использующий эти типы, будет обновлен для использования значений напрямую, а не для доступа к полям.
Связывание вложенных типов может иметь небольшое влияние на уменьшение размера apk, а также может помочь с производительностью запуска. Связаны только сборки release.
Экспериментальное. Только для работы с кодом, таким как
var view = FindViewById(Resources.Ids.foo);
Любые другие сценарии (например, отражение) не будут поддерживаться.
Добавлена поддержка этого свойства в Xamarin.Android 11.3
AndroidLinkSkip
Указывает список разделенных точкой с запятой (;
) имен сборок, которые не должны быть связаны, без расширений имен файлов. Используется только в проектах приложений Android.
<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>
AndroidLinkTool
Свойство стиля перечисления с допустимыми значениями proguard
или r8
. Указывает, какое средство для сокращения кода используется для кода Java. Значение по умолчанию — пустая строка или proguard
если $(AndroidEnableProguard)
это True
. Ознакомьтесь с нашей документацией по D8 и R8.
AndroidLintEnabled
Логическое свойство, позволяющее разработчику запускать средство android lint
в рамках процесса упаковки.
При $(AndroidLintEnabled)
=True используются следующие свойства:
Можно также использовать следующие действия сборки:
См. справку по Lint, чтобы узнать больше об инструментах Android lint
.
AndroidLintEnabledIssues
Строковое свойство, которое представляет собой список проблем с запятыми для включения.
Используется только в том случае, если $(AndroidLintEnabled)
=True.
AndroidLintDisabledIssues
Строковое свойство, которое представляет собой список проблем с запятыми для отключения.
Используется только в том случае, если $(AndroidLintEnabled)
=True.
AndroidLintCheckIssues
Строковое свойство, которое представляет собой список проблем с запятыми для проверки.
Используется только в том случае, если $(AndroidLintEnabled)
=True.
Примечание. Проверяться будут только эти проблемы.
AndroidManagedSymbols
Логическое свойство, которое определяет, создаются ли точки последовательности, чтобы можно было извлечь имя файла и номер строки из трассировки стека Release
.
Переменная добавлена в Xamarin.Android версии 6.1.
AndroidManifest
Определяет имя файла, которое будет использоваться в качестве шаблона для манифеста AndroidManifest.xml
приложения.
Во время сборки необходимые значения будут объединены для создания фактического файла AndroidManifest.xml
.
$(AndroidManifest)
должен содержать имя пакета в атрибуте /manifest/@package
.
AndroidManifestMerger
Указывает реализацию для слияния файлов AndroidManifest.xml. Это свойство стиля перечисления, где legacy
выбирает исходную реализацию C#, а manifestmerger.jar
выбирает реализацию Java в Google.
По умолчанию сейчас используется значение legacy
. Оно изменится на manifestmerger.jar
в будущем выпуске, чтобы согласовать поведение с Android Studio.
Средство слияния Google обеспечивает поддержку xmlns:tools="http://schemas.android.com/tools"
, как описано в документации по Android.
Добавлено в Xamarin.Android версии 10.2.
AndroidManifestMergerExtraArgs
Строковое свойство для предоставления аргументов средству документации Android.
Если вы хотите получить подробные выходные данные из средства, вы можете добавить в нее следующее .csproj
.
<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>
Представлено в Xamarin.Android 11.x
AndroidManifestType
Свойство стиля перечисления с допустимыми значениями Xamarin
или GoogleV2
.
Это управляет тем, какой репозиторий используется InstallAndroidDependencies
целевой объект для определения доступных пакетов и версий пакетов Android и их установки.
Xamarin
— это репозиторий утвержденных списков (рекомендуемых) в диспетчере sdk Visual Studio.
GoogleV2
— это репозиторий полного списка (неподдерживаемый) в диспетчере SDK Visual Studio.
Добавлено в Xamarin.Android 13.0. В Xamarin.Android 13.0, если $(AndroidManifestType)
он не задан, Xamarin
используется.
До Xamarin.Android 13.0 параметр $(AndroidManifestType)
не действует и GoogleV2
используется.
AndroidManifestPlaceholders
Разделенный точками с запятой список заменяемых пар "ключ-значение" для AndroidManifest.xml, где каждая пара имеет формат key=value
.
Например, значение свойства assemblyName=$(AssemblyName)
определяет заполнитель ${assemblyName}
, который затем может появиться в AndroidManifest.xml:
<application android:label="${assemblyName}"
Это позволяет вставлять переменные из процесса сборки в файл AndroidManifest.xml.
AndroidMultiDexClassListExtraArgs
Строковое свойство, позволяющее разработчикам передавать аргументы com.android.multidex.MainDexListBuilder
при создании multidex.keep
файла.
Один из частных случаев — появление следующей ошибки во время компиляции dx
.
com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
Если возникает эта ошибка, в файл .csproj
можно добавить следующее:
<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>
что позволит шагу dx
выполнить успешное выполнение.
Свойство добавлено в Xamarin.Android версии 8.3.
AndroidPackageFormat
Свойство стиля перечисления с допустимыми значениями apk
или aab
. Указывает, нужно ли упаковать приложение Android в виде APK-файла или пакета приложений Android. Пакеты приложений — это новый формат для сборок Release
, предназначенных для отправки на Google Play. Значение по умолчанию — apk
.
Если параметр $(AndroidPackageFormat)
имеет значение aab
, то устанавливаются другие свойства MSBuild, которые необходимы для пакетов приложений Android:
$(AndroidUseAapt2)
имеет значениеTrue
.$(AndroidUseApkSigner)
имеет значениеFalse
.$(AndroidCreatePackagePerAbi)
имеет значениеFalse
.
Это свойство будет устарело для .net 6. Пользователи должны переключиться на более новую AndroidPackageFormats
версию.
AndroidPackageFormats
Свойство с запятой с разделителями с допустимыми значениями apk
и aab
.
Указывает, нужно ли упаковать приложение Android в виде APK-файла или пакета приложений Android. Пакеты приложений — это новый формат для сборок Release
, предназначенных для отправки на Google Play.
При создании сборки выпуска может потребоваться создать как, так и aab
apk
для распространения в различные магазины.
Значение параметра AndroidPackageFormats
приведет к созданию aab;apk
обоих типов. Для параметра или AndroidPackageFormats
aab
apk
будет создан только один файл.
Для .net 6 AndroidPackageFormats
задано значение aab;apk
только для Release
сборок. Рекомендуется продолжать использовать только apk
для отладки.
Для устаревшей версии Xamarin.Android значение по умолчанию равно ""
.
В результате устаревшая версия Xamarin.Android по умолчанию не будет создавать как часть сборки выпуска. Если пользователь хочет создать оба выходных данных, необходимо определить следующее в конфигурации Release
.
<AndroidPackageFormats>aab;apk</AndroidPackageFormats>
Кроме того, необходимо удалить существующую AndroidPackageFormat
для этой конфигурации, если у вас ее есть.
Добавлено в Xamarin.Android 11.5.
AndroidPackageNamingPolicy
Свойство перечисления для указания имен пакетов Java созданного исходного кода Java.
Xamarin.Android 10.2 и более поздних версий поддерживает только значение LowercaseCrc64
.
Кроме того, в Xamarin.Android 10.1 было доступно переходное значение LowercaseMD5
, которое позволяло возвращаться к исходному стилю имен пакетов Java, который использовался в Xamarin.Android 10.0 и более ранних версий. Этот вариант был удален в Xamarin.Android 10.2 для улучшения совместимости со средами сборки, в которых реализованы требования соответствия FIPS.
Добавлено в Xamarin.Android версии 10.1.
AndroidProguardMappingFile
Задает правило ProGuard -printmapping
для r8
. Это означает, что файл mapping.txt
будет создан в папке $(OutputPath)
. Этот файл можно затем использовать при отправке пакетов в Магазин Google PlayPlay.
По умолчанию этот файл создается автоматически при использовании AndroidLinkTool=r8
и создаст следующий файл $(OutputPath)mapping.txt
.
Если вы не хотите создать этот файл сопоставления, можно использовать AndroidCreateProguardMappingFile
свойство для остановки его создания.
Добавьте следующее в проект
<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>
или используйте -p:AndroidCreateProguardMappingFile=False
в командной строке.
Это свойство было добавлено в Xamarin.Android 11.2.
AndroidR8IgnoreWarnings
Задает правило ProGuard -ignorewarnings
для r8
. Это позволяет r8
продолжать компиляцию DEX, даже если обнаружены определенные предупреждения. Значение по умолчанию равно True
, но может быть установлено для False
обеспечения более строгого поведения. Дополнительные сведения см. в руководстве по ProGuard.
Добавлено в Xamarin.Android версии 10.3.
AndroidR8JarPath
Путь к r8.jar
для использования с DEX-компилятором и средством сжатия кода r8. Значение по умолчанию — это путь в установке Xamarin.Android. Дополнительные сведения см. в документации по D8 и R8.
AndroidResgenExtraArgs
Задает параметры командной строки для передачи команде aapt при обработке ресурсов и ресурсов Android.
AndroidResgenFile
Задает имя создаваемого файла ресурсов. По умолчанию шаблон задает Resource.designer.cs
.
AndroidSdkBuildToolsVersion
Пакет средств сборки SDK для Android, который, помимо прочих, включает средства aapt и zipalign. Одновременно могут быть установлены несколько различных версий пакета средств сборки. Пакет средств сборки, выбранный для упаковки, создается путем проверки и использования "предпочтительной" версии, если она присутствует. Если такая версия отсутствует, то используется установленный пакет средств сборки последней версии.
Свойство MSBuild $(AndroidSdkBuildToolsVersion)
содержит предпочтительную версию средств сборки. Система сборки Xamarin.Android предоставляет значение по умолчанию в Xamarin.Android.Common.targets
, которое можно переопределить в файле проекта, чтобы выбрать альтернативную версию средств сборки, если (например) aapt последней версии завершается сбоем, а предыдущая версия aapt работает.
AndroidSigningKeyAlias
Указывает псевдоним для ключа в хранилище ключей. Это значение keytool -alias, используемое при создании хранилища ключей.
AndroidSigningKeyPass
Указывает пароль для ключа в файле хранилища ключей. Это значение вводится, когда keytool
запрашивает ввести пароль ключа для $(AndroidSigningKeyAlias).
В Xamarin.Android 10.0 и более ранних версий это свойство поддерживает только пароли в виде обычного текста.
В Xamarin.Android 10.1 и более поздних версий это свойство также поддерживает префиксы env:
и file:
, которые позволяют указать переменную среды или файл со значением пароля. Эти варианты позволяют избежать отображения пароля в журналах сборки.
Например, так можно применить переменную среды с именем AndroidSigningPassword:
<PropertyGroup>
<AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>
Так можно применить файл, расположенный в C:\Users\user1\AndroidSigningPassword.txt
:
<PropertyGroup>
<AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>
Примечание.
Префикс env:
не поддерживается, если для $(AndroidPackageFormat)
задано значение aab
.
AndroidSigningKeyStore
Указывает имя файла хранилища ключей, созданного с помощью keytool
. Это соответствует значению, указанному для параметра keytool -keystore.
AndroidSigningStorePass
Задает пароль к $(AndroidSigningKeyStore)
.
Это значение, предоставляемое для keytool
при создании файла хранилища ключей и запросе ввести пароль хранилища ключей.
В Xamarin.Android 10.0 и более ранних версий это свойство поддерживает только пароли в виде обычного текста.
В Xamarin.Android 10.1 и более поздних версий это свойство также поддерживает префиксы env:
и file:
, которые позволяют указать переменную среды или файл со значением пароля. Эти варианты позволяют избежать отображения пароля в журналах сборки.
Например, так можно применить переменную среды с именем AndroidSigningPassword:
<PropertyGroup>
<AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>
Так можно применить файл, расположенный в C:\Users\user1\AndroidSigningPassword.txt
:
<PropertyGroup>
<AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>
Примечание.
Префикс env:
не поддерживается, если для $(AndroidPackageFormat)
задано значение aab
.
AndroidSigningPlatformKey
Указывает файл ключа, используемый для подписывания apk.
Это используется только при создании system
приложений.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
AndroidSigningPlatformCert
Указывает файл сертификата, используемый для подписи apk.
Это используется только при создании system
приложений.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
AndroidSupportedAbis
Строковое свойство, которое содержит разделенный точками с запятой (;
) список ABI, которые должны быть включены в файл .apk
.
Допустимые значения:
armeabi-v7a
x86
arm64-v8a
: требуется Xamarin.Android 5.1 и более поздней версии.x86_64
: требуется Xamarin.Android 5.1 и более поздней версии.
AndroidTlsProvider
Строковое значение, указывающее, какой поставщик TLS следует использовать в приложении. Возможны следующие значения:
Отмена набора или пустой строки: в Xamarin.Android 7.3 и более поздних версиях это эквивалентно
btls
.В Xamarin.Android 7.1 это эквивалентно значению
legacy
.Это соответствует параметру по умолчанию на страницах свойств Visual Studio.
btls
: используется Boring SSL для взаимодействия через TLS с HttpWebRequest.Это позволяет использовать TLS 1.2 во всех версиях Android.
Это соответствует параметру Собственный протокол TLS 1.2+ на страницах свойств Visual Studio.
legacy
: в Xamarin.Android 10.1 и более ранних версиях используйте историческую управляемую реализацию SSL для сетевого взаимодействия. Это не поддерживает TLS 1.2.Это соответствует параметру Управляемый протокол TLS 1.0 на страницах свойств Visual Studio.
В Xamarin.Android 10.2 и более поздних версий это значение игнорируется. Вместо него используется параметр
btls
.default
: это значение вряд ли будет использоваться в проектах Xamarin.Android. Вместо этого рекомендуется использовать пустую строку, соответствующую параметру по умолчанию на страницах свойств Visual Studio.Значение
default
не предлагается на страницах свойств Visual Studio.В настоящее время оно эквивалентно
legacy
.
Свойство добавлено в Xamarin.Android версии 7.1.
AndroidUseAapt2
Логическое свойство, позволяющее разработчику управлять использованием aapt2
средства для упаковки.
По умолчанию имеет значение False и Xamarin.Android использует aapt
.
Если разработчик хочет использовать новые функциональные возможности aapt2
, следует добавить следующее:
<AndroidUseAapt2>True</AndroidUseAapt2>
в собственном файле .csproj
. Вы также можете указать свойство в командной строке:
/p:AndroidUseAapt2=True
Это свойство было добавлено в Xamarin.Android 8.3. Установка для параметра AndroidUseAapt2
значения false
не рекомендуется в Xamarin.Android 11.2.
AndroidUseApkSigner
Логическое свойство, позволяющее разработчику apksigner
использовать средство, а не jarsigner
.
Свойство добавлено в Xamarin.Android версии 8.2.
AndroidUseDefaultAotProfile
Логическое свойство, которое позволяет разработчику подавлять использование профилей AOT по умолчанию.
Чтобы подавить профиль AOT по умолчанию, присвойте этому свойству значение false
.
Добавлено в Xamarin.Android версии 10.1.
AndroidUseInterpreter
Логическое свойство, которое приводит .apk
к тому, что он содержит монопретатор, а не обычный JIT.
Экспериментальное.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
AndroidUseLegacyVersionCode
Логическое свойство, позволяющее разработчику вернуть вычисление versionCode обратно в старое поведение Xamarin.Android 8.2. Это свойство могут использовать ТОЛЬКО разработчики, приложения которых находятся в Google Play. Настоятельно рекомендуется использовать новое свойство $(AndroidVersionCodePattern)
.
Свойство добавлено в Xamarin.Android версии 8.2.
AndroidUseManagedDesignTimeResourceGenerator
Логическое свойство, которое переключится на сборки времени разработки, чтобы использовать средство синтаксического анализа управляемых ресурсов, а не aapt
.
Свойство добавлено в Xamarin.Android версии 8.1.
AndroidUseSharedRuntime
Логическое свойство, определяющее, требуются ли пакеты общей среды выполнения для запуска приложения на целевом устройстве. Их использование позволяет уменьшить пакет приложения, что ускорит процесс создания и развертывания пакета, а также цикл разработки, развертывания и отладки.
До Xamarin.Android 11.2 это свойство должно иметь значение True
для отладочных сборок и False
для проектов выпуска.
Это свойство было удалено в Xamarin.Android 11.2.
AndroidVersionCode
Свойство MSBuild, которое можно использовать в качестве альтернативы /manifest/@android:versionCode
в AndroidManifest.xml
файле. Чтобы включить эту функцию, необходимо также включить <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Это будет по умолчанию в .NET 6.
Это свойство игнорируется, если $(AndroidCreatePackagePerAbi)
и $(AndroidVersionCodePattern)
используется.
@android:versionCode
— это целочисленное значение, которое необходимо увеличить для каждого выпуска Google Play. Дополнительные сведения о требованиях /manifest/@android:versionCode
см. в документации по Android.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
AndroidVersionCodePattern
Строковое свойство, позволяющее разработчику настраивать versionCode
манифест.
Дополнительные сведения об определении versionCode
см. в разделе Создание версии кода для APK.
Например, если abi
имеет значение armeabi
, а versionCode
в манифесте — 123
, тогда {abi}{versionCode}
выдает код версии 1123
, если $(AndroidCreatePackagePerAbi)
имеет значение True, в противном случае будет создано значение 123.
Если abi
— x86_64
, а versionCode
в манифесте — 44
, будет получено значение 544
, если $(AndroidCreatePackagePerAbi)
— True, в противном случае значением будет 44
.
Если включить формат строки левого дополнения {abi}{versionCode:0000}
, значением будет 50044
, так как слева к versionCode
будет добавлен 0
. Кроме того, можно использовать десятичное заполнение, например ,{abi}{versionCode:D4}
то же самое, что и в предыдущем примере.
Поддерживаются только строки формата дополнения "0" и "Dx", потому что значение ДОЛЖНО быть целым числом.
Предварительно определенные ключевые элементы
abi — вставляет целевой abi для приложения
- 2 –
armeabi-v7a
- 3 –
x86
- 4 –
arm64-v8a
- 5 –
x86_64
- 2 –
minSDK — вставляет минимальное поддерживаемое значение пакета SDK из
11
AndroidManifest.xml
или если он не определен.versionCode — использует код версии непосредственно из
Properties\AndroidManifest.xml
.
Можно определить настраиваемые элементы с помощью свойства $(AndroidVersionCodeProperties)
(определение приводится ниже).
По умолчанию будет указано значение {abi}{versionCode:D6}
. Если разработчик хочет сохранить предыдущее поведение, можно переопределить значение по умолчанию, задав для свойства $(AndroidUseLegacyVersionCode)
значение true
Добавлено в Xamarin.Android версии 7.2.
AndroidVersionCodeProperties
Строковое свойство, позволяющее разработчику определять пользовательские элементы для использования с $(AndroidVersionCodePattern)
ним.
Они находятся в форме пары key=value
. Все элементы в value
должны быть целыми числами. Например: screen=23;target=$(_AndroidApiLevel)
. Как видно, вы можете использовать существующие или пользовательские свойства MSBuild в строке.
Добавлено в Xamarin.Android версии 7.2.
ApplicationId
Свойство MSBuild, которое можно использовать в качестве альтернативы /manifest/@package
в AndroidManifest.xml
файле. Чтобы включить эту функцию, необходимо также включить <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Это будет по умолчанию в .NET 6.
Дополнительные сведения о требованиях /manifest/@package
см. в документации по Android.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
ApplicationTitle
Свойство MSBuild, которое можно использовать в качестве альтернативы /manifest/application/@android:label
в AndroidManifest.xml
файле. Чтобы включить эту функцию, необходимо также включить <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Это будет по умолчанию в .NET 6.
Дополнительные сведения о требованиях /manifest/application/@android:label
см. в документации по Android.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
ApplicationVersion
Свойство MSBuild, которое можно использовать в качестве альтернативы /manifest/@android:versionName
в AndroidManifest.xml
файле. Чтобы включить эту функцию, необходимо также включить <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Это будет по умолчанию в .NET 6.
Дополнительные сведения о требованиях /manifest/@android:versionName
см. в документации по Android.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
AotAssemblies
Логическое свойство, которое определяет, будут ли сборки скомпилированы в машинный код в режиме Ahead Of Time (AOT) и включены в .apk
.
Поддержка этого свойства была добавлена в Xamarin.Android версии 5.1.
По умолчанию это свойство имеет значение False
.
AProfUtilExtraOptions
Дополнительные параметры, которые следует передать в aprofutil
.
BeforeGenerateAndroidManifest
Целевые объекты MSBuild, перечисленные в этом свойстве, будут запускаться непосредственно перед _GenerateJavaStubs
.
Добавлено в Xamarin.Android версии 9.4.
Настройка
Указывает конфигурацию сборки, например "отладка" или "выпуск". Свойство Configuration используется для определения значений по умолчанию для других свойств, которые определяют поведение целевого объекта. В вашей среде IDE можно создать дополнительные конфигурации.
По умолчанию конфигурация приведет к тому, Debug
что Install
и SignAndroidPackage
предназначен для создания меньшего пакета Android, который требует наличия других файлов и пакетов для работы.
Конфигурация по умолчанию Release
приведет к Install
и SignAndroidPackage
предназначен для создания пакета Android, который является автономным и может использоваться без установки других пакетов или файлов.
DebugSymbols
Логическое значение, определяющее, является ли пакет Android отлаживаемым в сочетании со свойством $(DebugType)
.
Отладочный пакет содержит отладочные символы, задает //application/@android:debuggable
атрибут true
и автоматически добавляет INTERNET
разрешение, чтобы отладчик смог присоединиться к процессу. Приложение отлаживается, если DebugSymbols
имеет значение True
, аDebugType
является пустой строкой или имеет значение Full
.
DebugType
Определяет тип отладочных символов, которые следует создать как часть сборки, что также влияет на возможность отладки приложения. Возможные значения включают:
Full: создаются все символы. Если свойство
DebugSymbols
Свойство MSBuild такжеTrue
является отладчиком пакета приложения.PdbOnly: создаются символы PDB. Пакет приложения не является отлаживаемым.
Если свойство DebugType
не задано или является пустой строкой, тогда свойство DebugSymbols
определяет, является ли это приложение отлаживаемым.
EmbedAssembliesIntoApk
Логическое свойство, которое определяет, следует ли внедрять сборки приложения в пакет приложения.
Это свойство должно иметь значение True
для сборок выпуска и False
для сборок отладки. В сборках отладки значение True
может понадобиться, если быстрое развертывание не поддерживается для целевого устройства.
Если это свойство имеет значение False
, то $(AndroidFastDeploymentType)
Свойство MSBuild также определяет, что будет внедрено в .apk
приложение, что может повлиять на время развертывания и перестроения.
EnableLLVM
Логическое свойство, которое определяет, будет ли использована низкоуровневая виртуальная машина (LLVM) при компиляции Ahead-of-Time сборок в машинный код.
Чтобы создать проект, для которого включено это свойство, необходимо установить Android NDK.
Поддержка этого свойства была добавлена в Xamarin.Android версии 5.1.
По умолчанию это свойство имеет значение False
.
Это свойство игнорируется, если только свойство MSBuild $(AotAssemblies)
не имеет значение True
.
EnableProguard
Логическое свойство, которое определяет, запускается ли ProGuard в рамках процесса упаковки для связывания кода Java.
Поддержка этого свойства была добавлена в Xamarin.Android версии 5.1.
По умолчанию это свойство имеет значение False
.
Если установлено значение True
, файлы @(ProguardConfiguration) будут использоваться для управления выполнением proguard
.
GenerateApplicationManifest
Включает или отключает следующие свойства MSBuild, которые выдают значения в окончательном AndroidManifest.xml
файле:
Значение $(GenerateApplicationManifest)
по умолчанию используется true
в .NET 6 и false
в Xamarin.Android.
Поддержка этого свойства добавлена в Xamarin.Android 11.3.
JavaMaximumHeapSize
Указывает значение параметра java-Xmx
для использования при сборке файла .dex
в процессе упаковки. Если он не указан, то параметр -Xmx
задает для java значение 1G
. Это часто будет требоваться в Windows по сравнению с другими платформами.
Настройка значения путем изменения:
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
JavaOptions
Задает параметры командной строки для передачи в Java при создании .dex
файла.
JarsignerTimestampAuthorityCertificateAlias
Это свойство позволяет указать псевдоним в хранилище ключей в качестве источника для меток времени. Дополнительные сведения см. в документации по Java, посвященной поддержке меток времени для сигнатур.
<PropertyGroup>
<JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>
JarsignerTimestampAuthorityUrl
Это свойство позволяет указать URL-адрес службы в качестве источника для меток времени. Так вы сможете гарантировать, что сигнатура .apk
содержит метку времени.
Дополнительные сведения см. в документации по Java, посвященной поддержке меток времени для сигнатур.
<PropertyGroup>
<JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>
LinkerDumpDependencies
Логическое свойство, позволяющее создавать файл зависимостей компоновщика. Этот файл может использоваться в качестве входных данных для средства illinkanalyzer.
Файл зависимостей с именем linker-dependencies.xml.gz
записывается в каталог проекта. В .NET5/6 он записывается рядом со связанными сборками в каталоге obj/<Configuration>/android<ABI>/linked
.
Значение по умолчанию равно False.
MandroidI18n
Указывает поддержку интернационализации в приложении, например параметры сортировки и таблицы сортировки. Значение представляет собой список, разделенный запятой или точкой с запятой, из одного или нескольких следующих значений, не учитывающих регистр:
None: не включать дополнительные кодировки.
All: включить все доступные кодировки.
CJK: включают китайские, японские и корейские кодировки, такие как японский (EUC) [enc-jp, CP51932], японский (SHIFT-JIS) [iso-2022-jp, shift_jis, CP932], японский (JIS) [CP50220], Китайский упрощенный (GB2312) [gb2312, CP936], корейский (UHC) [ks_c_5601-1987, CP949], корейский (EUC) [euc-kr, CP51949], китайский традиционный (Big5) [big5, CP950], и китайский упрощенный (GB18030) [GB18030, CP54936].
MidEast: включение кодировки Ближнего Востока, такие как турецкий (Windows) [iso-8859-9, CP1254], иврит (Windows) [windows-1255, CP1255], арабский (Windows) [windows-1256, CP1256], арабский (ISO) [iso-8859-6, CP28596], иврит (ISO) [iso-8859-8, CP28598], латинская 5 (ISO) [iso-8859-9, CP28599], и иврит (iso-8859-8, CP38598].
Другие: включите другие кодировки, такие как кириллица (Windows) [CP1251], Балтия (Windows) [iso-8859-4, CP1257], вьетнамские (Windows) [CP1258], кириллица (KOI8-R) [koi8-r, CP1251], украинский (KOI8-U) [koi8-u, CP1251], Балтия (ISO) [iso-8859-4, CP1257], кириллица (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII Tamil [x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or; CP57007], ISCII Kannada [x-iscii-ka, CP57008], ISCII Малаялам [x-iscii-ma, CP57009], ISCII Gujarati [x-iscii-gu, CP57010], ISCII Punjabi [x-iscii-pa, CP57011], и тайский (Windows) [CP874].
Редкие: включают редкие кодировки, такие как IBM EBCDIC (турецкий) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (США-Канада с евро) [CP1140], IBM EBCDIC (Германия с евро) [CP1141], IBM EBCDIC (Дания/Норвегия с евро) [CP1142], IBM EBCDIC (Финляндия и Швеция с евро) [CP1143], IBM EBCDIC (Италия с евро) [CP1144], IBM EBCDIC (Латинская Америка/Испания с евро) [CP1145], IBM EBCDIC (Соединенное Королевство с евро) [CP1146], IBM EBCDIC (Франция с евро) [CP1147], IBM EBCDIC (International with Euro) [CP1148], IBM EBCDIC (Исландия с Евро) [CP1149], IBM EBCDIC (Германия) [CP20273], IBM EBCDIC (Дания/Норвегия) [CP20277], IBM EBCDIC (Финляндия/Швеция) [CP20278], IBM EBCDIC (Италия) [CP20280], IBM EBCDIC (Латинская Америка/Испания) [CP20284], IBM EBCDIC (Соединенное Королевство) [CP20285], IBM EBCDIC (японский Katakana Extended) [CP20290], IBM EBCDIC (Франция) [CP20297], IBM EBCDIC (арабский) [CP20420], IBM EBCDIC (иврит) [CP20424], IBM EBCDIC (Исландия) [CP20871], IBM EBCDIC (кириллический - сербский, болгарский) [CP21025], IBM EBCDIC (США-Канада) [CP37], IBM EBCDIC (International) [CP500], арабский (ASMO 708) [CP708], Центральная европа (DOS) [CP852], кириллица (DOS) [CP855], Турецкий (DOS) [CP857], западный (DOS с евро) [CP858], иврит (DOS) [CP862], арабский (DOS) [CP864], русский (DOS) [CP866], греческий (DOS) [CP869], IBM EBCDIC (латинская 2) [CP870], и IBM EBCDIC (греческий) [CP875].
Запад: включите западные кодировки, такие как Западная Европа (Mac) [macintosh, CP10000], Исландия (Mac) [x-mac-исландия, CP10079], Центральная Европа (Windows) [iso-8859-2, CP1250], Западная Европа (Windows) [iso-8859-1, CP1252], греческий (Windows) [iso-8859-7, CP1253], центрально-европейский (ISO) [iso-8859-2, CP28592], латинская 3 (ISO) [iso-8859-3, CP28593], греческий (ISO) [iso-8859-7, CP28597], латинская 9 (ISO) [iso-8859-15, CP28605], OEM США [CP437], Западная Европа (DOS) [CP850], португальский (DOS) [CP860], Исландия (DOS) [CP861], французский канадский (DOS) [CP863], а также Скандинавская (DOS) [CP865].
<MandroidI18n>West</MandroidI18n>
MonoAndroidResourcePrefix
Указывает префикс пути, который удаляется в начале имен файлов с помощью действия сборки AndroidResource
. Это позволяет изменять расположение ресурсов.
Значение по умолчанию — Resources
. Установите значение res
для структуры проекта Java.
MonoSymbolArchive
Логическое свойство, которое определяет, создаются ли .mSYM
артефакты для последующего использования для mono-symbolicate
извлечения "реального" имени файла и сведений о номере строки из трассировок стека выпуска.
Значение True по умолчанию для приложений "Выпуск", в которых включены символы отладки: $(EmbedAssembliesIntoApk)
true, $(DebugSymbols)
имеет значение True и $(Optimize)
значение True.
Свойство добавлено в Xamarin.Android версии 7.1.