Привязка свойств MSBuild для проектов

Примечание.

В .NET для Android технически нет различий между приложением и проектом привязок, поэтому эти свойства будут работать в обоих. На практике настоятельно рекомендуется создавать отдельные проекты приложений и привязок. Свойства сборки, которые в основном используются в проектах приложений, описаны в справочном руководстве по свойствам MSBuild.

Свойства сборки

Свойство По умолчанию Описание
AndroidBoundInterfacesContainConstants true Логическое свойство, указывающее, будут ли поддерживаться константы привязки для интерфейсов, или если будет использоваться устаревшее решение для создания IMyInterfaceConsts класса.

Документация
AndroidBoundInterfacesContainStatic
AndDefaultInterfaceMethods
true Логическое свойство, указывающее, будут ли поддерживаться статические и стандартные члены интерфейсов, или будет использоваться устаревшее решение с созданием вспомогательного класса, содержащего статические элементы, как abstract class MyInterface.

Документация
AndroidBoundInterfacesContainTypes true Логическое свойство, указывающее, поддерживаются ли типы, вложенные в интерфейсы, или будет использоваться устаревший обходной путь создания невложенного типа, как IMyInterfaceMyNestedClass.

Документация
AndroidEnableObsoleteOverrideInheritance
Добавлено в .NET 8
true Логическое свойство, указывающее, будут ли привязанные методы, переопределяющие @Deprecated методы Java, автоматически помечены как @Deprecated.

Документация
AndroidEnableRestrictToAttributes
Добавлено в .NET 8
obsolete Свойство в стиле перечисления с допустимыми значениями obsolete и disable, которое определяет, добавляется ли атрибут .NET [Obsolete] в привязанный API, помеченный значением @RestrictTo в библиотеке Java.

Документация
AndroidJavadocVerbosity intellisense Свойство в стиле перечисления с допустимыми значениями и , которое определяет, насколько "подробными" должны быть комментарии XML-документации по C# при импорте документации Javadoc в проекты привязки с использованием действия сборки .

Документация

ИнтерфейсыСвязанныеСАндроидСодержатКонстанты

Логическое свойство, указывающее, будут ли поддерживаться константы привязки для интерфейсов, или если будет использоваться устаревшее решение для создания IMyInterfaceConsts класса.

Значение по умолчанию — true.

Это рекомендуется только при попытке поддерживать совместимость общедоступного API с устаревшей библиотекой привязок, созданной до выпуска C# 8.

Дополнительные сведения

AndroidBoundInterfacesСодержатСтатическиеИМетодыИнтерфейсаПоУмолчанию

Логическое свойство, указывающее, будут ли поддерживаться стандартные и статические члены интерфейсов, или будет использоваться устаревшее обходное решение создания вспомогательного класса, содержащего статические элементы, например abstract class MyInterface.

Значение по умолчанию — true.

Это рекомендуется только при попытке поддерживать совместимость общедоступного API с устаревшей библиотекой привязок, созданной до выпуска C# 8.

Дополнительные сведения

AndroidBoundInterfacesContainTypes

Логическое свойство, указывающее, будут ли поддерживаться типы, вложенные в интерфейсы, или будет использоваться устаревший обходной путь создания типа, не являющегося вложенным, например IMyInterfaceMyNestedClass.

Значение по умолчанию — true.

Это рекомендуется только при попытке поддерживать совместимость общедоступного API с устаревшей библиотекой привязок, созданной до выпуска C# 8.

Дополнительные сведения

AndroidEnableRestrictToAttributes

Свойство перечисления с допустимыми значениями obsolete и disable, которое определяет, добавляется ли атрибут .NET [Obsolete] в привязанный API, помеченный @RestrictTo в библиотеке Java.

Это свойство задано obsolete по умолчанию.

Если установлено значение obsolete, типы и члены, помеченные аннотацией Java, или те, что находятся в неэкспортируемых пакетах Java, будут помечены атрибутом [Obsolete] в привязке C#.

Этот [Obsolete] атрибут содержит описательное сообщение, объясняющее, что владелец пакета Java считает API "внутренним" и предупреждает о его использовании.

Этот атрибут также имеет пользовательский код предупреждения XAOBS001, чтобы его можно было подавлять независимо от "обычного" устаревшего API.

Если задано значение disable, API будет создан как обычный без дополнительных атрибутов. (Это то же поведение, что и до .NET 8.)

Добавление [Obsolete] атрибутов вместо автоматического удаления API было сделано для сохранения совместимости API с существующими пакетами. Если вы предпочитаете удалять элементы, которые имеют @RestrictTo аннотацию или находятся в неэкспортируемых пакетах Java, можно использовать метаданные в дополнение к этому свойству, чтобы предотвратить связывание этих типов.

<remove-node path="//*[@annotated-visibility]" />

Поддержка этого свойства добавлена в .NET 8.

AndroidEnableObsoleteOverrideInheritance

Логическое свойство, указывающее, будут ли привязанные методы, переопределяющие @Deprecated методы Java, автоматически помечены как @Deprecated.

Очень редко требуется изменить это свойство.

Поддержка этого свойства добавлена в .NET 8.

AndroidJavadocVerbosity

Свойство перечисления с допустимыми значениями intellisense и full, которое указывает, насколько детальной должна быть XML-документация по C#, при импорте документации Javadoc в связывающие проекты с использованием действия сборки @(JavaSourceJar).

Это свойство задано intellisense по умолчанию.

  • intellisense: только выводить примечания XML: <exception/>, <param/>, <returns/>, <summary/>.
  • full: выводит перечисленные intellisense элементы, а также <remarks/>, <seealso/>, и все остальные элементы, которые поддерживаются.