Поделиться через


Привязка проектов MSBuild

Примечание.

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

Элементы сборки

Позиция Description
AndroidAdditionalJavaManifest
Добавлено в .NET 9
Представляет дополнительные файлы POM, необходимые для проверки зависимостей Java.

Документация
AndroidIgnoredJavaDependency
Добавлено в .NET 9
Представляет зависимости Java, которые следует игнорировать при проверке зависимостей Java.

Документация
AndroidJavaSource Представляет исходные файлы Java ,.javaкоторые должны быть скомпилированы и включены в проект.

Документация
AndroidLibrary .jar/.aar Представляет файл, привязанный проектом привязок.

Документация
AndroidMavenLibrary
Добавлено в .NET 9
.jar/.aar Представляет файл, который должен быть скачан из репозитория Maven и привязан проектом привязок.

Документация
AndroidNamespaceReplacement Представляет преобразование, которое должно применяться к имени пакета Java, чтобы итоговое управляемое пространство имен лучше соответствовало соглашениям .NET.

Документация
JavaSourceJar Представляет исходный код .jar Java, из который необходимо импортировать документацию по API.

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

Устаревшие элементы сборки

Эти элементы MSBuild устарели. Хотя они продолжают функционировать, рекомендуется перейти на перечисленные новые элементы.

Позиция Description
AndroidAarLibrary
Не рекомендуется
Представляет файл Android .aar для включения в выходные данные проекта.

Документация
AndroidJavaLibrary
Не рекомендуется
Представляет файл Android .jar для включения в выходные данные проекта.

Документация
EmbeddedJar
Не рекомендуется
Представляет файл Android .jar для привязки и включения в выходные данные проекта.

Документация
EmbeddedReferenceJar
Не рекомендуется
Представляет файл Android .jar для включения в выходные данные проекта.

Документация
LibraryProjectZip
Не рекомендуется
Представляет файл Android .aar для включения в выходные данные проекта.

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

AndroidAarLibrary

Этот элемент сборки устарел и заменяется элементом AndroidLibrary .

<!-- Deprecated -->
<AndroidAarLibrary Include="mylib.aar" />

<!-- Recommended -->
<AndroidLibrary Include="mylib.aar" />

Действие сборки AndroidAarLibrary следует использовать для прямой ссылки на файлы .aar. Действие сборки будет наиболее часто использоваться компонентами Xamarin. А именно, чтобы включить ссылки на .aar файлы, необходимые для работы Google Play и других служб.

Файлы с этим действием сборки будут обрабатываться так же, как внедренные ресурсы, расположенные в проектах библиотек. Файлы .aar будут извлекаться в промежуточный каталог. Затем все активы, ресурсы и файлы .jar будут включены в соответствующие группы элементов.

AndroidAdditionalJavaManifest

<AndroidAdditionalJavaManifest> используется в сочетании с разрешением зависимостей Java.

Он используется для указания дополнительных POM-файлов, необходимых для проверки зависимостей. Часто это родительские или импортированные POM-файлы, на которые ссылается POM-файл библиотеки Java.

<ItemGroup>
  <AndroidAdditionalJavaManifest Include="mylib-parent.pom" JavaArtifact="com.example:mylib-parent" JavaVersion="1.0.0" />
</ItemGroup>
Имя метаданных элемента Description
JavaArtifact Обязательная строка. Идентификатор группы и артефакта библиотеки Java, соответствующий спецификации POM-файла в форме {GroupId}:{ArtifactId}.
JavaVersion Обязательная строка. Версия библиотеки Java, соответствующая указанному файлу POM.

Дополнительные сведения см. в документации по разрешению зависимостей Java.

Поддержка этого элемента сборки появилась в .NET 9.

AndroidIgnoredJavaDependency

<AndroidIgnoredJavaDependency> используется в сочетании с разрешением зависимостей Java.

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

<!-- Include format is {GroupId}:{ArtifactId} -->
<ItemGroup>
  <AndroidIgnoredJavaDependency Include="com.google.errorprone:error_prone_annotations" Version="2.15.0" />
</ItemGroup>
Имя метаданных элемента Description
Версия Обязательная строка. Версия библиотеки Java, соответствующая указанной зависимости.

Дополнительные сведения см. в документации по разрешению зависимостей Java.

Поддержка этого элемента сборки появилась в .NET 9.

AndroidJavaLibrary

Этот элемент сборки устарел и заменяется элементом AndroidLibrary .

<!-- Deprecated -->
<AndroidJavaLibrary Include="mylib.jar" />

<!-- Recommended -->
<AndroidLibrary Include="mylib.jar" />

Файлы с действием сборки AndroidJavaLibrary — это архивы Java ( .jar файлы), которые будут включены в окончательный пакет Android.

AndroidJavaSource

AndroidJavaSource файлы — это исходный код Java, который будет скомпилирован и включен в окончательный пакет Android.

Начиная с .NET 7 все **\*.java файлы в каталоге проекта автоматически имеют действие AndroidJavaSourceсборки и будут привязаны до сборки сборки. Позволяет коду C# легко использовать типы и члены, присутствующих в файлах **\*.java .

Имя метаданных элемента Description
Bind Необязательный логический атрибут. Указывает, должен ли исходный файл Java создать для него привязку C#. По умолчанию — true.

Поддержка этого элемента сборки появилась в .NET 7.

AndroidLibrary

.jar/.aar Представляет файл для привязки и включения в проект.

<ItemGroup>
  <AndroidLibrary Include="foo.jar" />
  <AndroidLibrary Include="bar.aar" />
</ItemGroup>
Имя метаданных элемента Description
Bind Необязательный логический атрибут. Указывает, должна ли библиотека Java иметь привязку C#, созданную для нее. По умолчанию — true.
Упаковка Необязательный логический атрибут. Указывает, должна ли библиотека Java включаться в выходные данные проекта. По умолчанию — true.

AndroidMavenLibrary

.jar/.aar Представляет файл, который должен быть скачан из репозитория Maven и привязан проектом привязок.

Это может быть полезно для упрощения обслуживания привязок .NET для Android для артефактов, размещенных в Maven.

<!-- Include format is {GroupId}:{ArtifactId} -->
<ItemGroup>
  <AndroidMavenLibrary Include="com.squareup.okhttp3:okhttp" Version="4.9.3" />
</ItemGroup>
Имя метаданных элемента Description
Версия Обязательная строка. Версия библиотеки Java, которую следует скачать из Maven. По умолчанию — true.
Репозиторий Необязательная строка. Указывает используемый репозиторий Maven. Поддерживаемые значения: CentralGoogleили https URL-адрес репозитория Maven. По умолчанию — Central.
Bind Необязательный логический атрибут. Указывает, должна ли библиотека Java иметь привязку C#, созданную для нее. По умолчанию — true.
Упаковка Необязательный логический атрибут. Указывает, должна ли библиотека Java включаться в выходные данные проекта. По умолчанию — true.

Дополнительные сведения см. в документации по AndroidMavenLibrary.

Поддержка этого элемента сборки появилась в .NET 9.

EmbeddedJar

Этот элемент сборки устарел и заменяется элементом AndroidLibrary .

<!-- Deprecated -->
<EmbeddedJar Include="mylib.jar" />

<!-- Recommended -->
<AndroidLibrary Include="mylib.jar" />

В проекте привязки .NET для Android действие сборки EmbeddedJar привязывает библиотеку Java/Kotlin и внедряет .jar файл в библиотеку. Когда проект приложения .NET для Android использует библиотеку, он будет иметь доступ к API Java/Kotlin из C# и включить код Java/Kotlin в окончательное приложение Android.

EmbeddedReferenceJar

Этот элемент сборки не рекомендуется использовать и заменяется элементом AndroidLibrary с набором falseметаданных Bind.

<!-- Deprecated -->
<EmbeddedReferenceJar Include="mylib.jar" />

<!-- Recommended -->
<AndroidLibrary Include="mylib.jar" Bind="false" />

В проекте привязки .NET для Android действие сборки EmbeddedReferenceJar внедряет файл в библиотеку, но не создает привязку C#, так как EmbeddedJar делает..jar Когда проект приложения .NET для Android использует библиотеку, он будет включать код Java/Kotlin в окончательное приложение Android.

JavaSourceJar

Представляет исходный код .jar Java, содержащий комментарии документации Javadoc, из которым должна импортироваться документация ПО API.

Javadoc будет преобразован в комментарии xml-документации C# в созданном исходном коде привязки.

$(AndroidJavadocVerbosity) определяет, насколько "подробным" или "полным" будет импортированный Javadoc.

Имя метаданных элемента Description
CopyrightFile Необязательная строка. Путь к файлу, который содержит сведения об авторских правах для содержимого Javadoc, который будет добавлен ко всей импортированной документации.
UrlPrefix Необязательная строка. Префикс URL-адреса для поддержки связывания с веб-документацией в импортированной документации.
UrlStyle Необязательная строка. Стиль URL-адресов, которые необходимо создать при связывании с веб-документацией. В настоящее время поддерживается только один стиль: developer.android.com/reference@2020-Nov.
DocRootUrl Необязательная строка. Префикс URL-адреса, используемый вместо всех {@docroot} экземпляров в импортированной документации.

LibraryProjectZip

Этот элемент сборки устарел и заменяется элементом сборки AndroidLibrary .

<!-- Deprecated -->
<LibraryProjectZip Include="mylib.aar" />

<!-- Recommended -->
<AndroidLibrary Include="mylib.aar" />

Действие сборки LibraryProjectZip привязывает библиотеку Java/Kotlin и внедряет .zip файл в .aar библиотеку. Когда проект приложения .NET для Android использует библиотеку, он будет иметь доступ к API Java/Kotlin из C# и включить код Java/Kotlin в окончательное приложение Android.