通过


绑定项目 MSBuild 项目项

注意

在 .NET for Android 中,应用程序与绑定项目在技术上没有区别,因此这些项目将同时工作。 在实践中,强烈建议创建单独的应用程序和绑定项目。 主要用于应用程序项目的生成项记录在 MSBuild 项参考指南中

生成项

项目 说明
AndroidAdditionalJavaManifest
在 .NET 9 中添加
表示验证 Java 依赖项所需的其他 POM 文件。

文档
AndroidIgnoredJavaDependency
在 .NET 9 中添加
表示在验证 Java 依赖项时应忽略的 Java 依赖项。

文档
AndroidJavaSource 表示应编译并包含在项目中的 Java 源文件(.java)。

文档
AndroidLibrary 表示由绑定项目绑定的 .jar/.aar 文件。

文档
AndroidMavenLibrary
在 .NET 9 中添加
表示应从 Maven 存储库下载并由绑定项目进行绑定的 .jar/.aar 文件。

文档
AndroidNamespaceReplacement 表示应应用于 Java 包名称的转换,以使生成的托管命名空间更适合 .NET 约定。

文档
JavaSourceJar 表示 API 文档应从中导入的 Java 源代码.jar

文档

弃用的生成项

这些 MSBuild 项已弃用。 尽管它们继续正常运行,但建议迁移到列出的较新项。

项目 说明
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 文件。 通常,它们是由 Java 库的 POM 文件引用的父级 POM 文件或导入的 POM 文件。

<ItemGroup>
  <AndroidAdditionalJavaManifest Include="mylib-parent.pom" JavaArtifact="com.example:mylib-parent" JavaVersion="1.0.0" />
</ItemGroup>
项目元数据名称 说明
JavaArtifact 必选字符串。 与指定 POM 文件匹配的 Java 库的组 ID 和项目 ID,其格式为 {GroupId}:{ArtifactId}
JavaVersion 必选字符串。 与指定 POM 文件匹配的 Java 库的版本。

有关更多详细信息, 请参阅 Java 依赖项解析文档

.NET 9 中引入了对此生成项的支持。

Android忽略的Java依赖关系

<AndroidIgnoredJavaDependency>与 Java 依赖项解析结合使用

它用于指定应忽略的 Java 依赖项。 如果依赖项将以 Java 依赖项解析无法检测到的方式实现,则可以使用此方法。

<!-- Include format is {GroupId}:{ArtifactId} -->
<ItemGroup>
  <AndroidIgnoredJavaDependency Include="com.google.errorprone:error_prone_annotations" Version="2.15.0" />
</ItemGroup>
项目元数据名称 说明
版本 必选字符串。 与指定依赖项匹配的 Java 库的版本。

有关更多详细信息, 请参阅 Java 依赖项解析文档

.NET 9 中引入了对此生成项的支持。

AndroidJavaLibrary

此生成项已弃用,由 AndroidLibrary 项替换

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

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

生成操作为 AndroidJavaLibrary 的文件是 Java 存档(.jar 文件),它将包含在最终的 Android 程序包中。

AndroidJavaSource

AndroidJavaSource 文件是将编译并包含在最终 Android 包中的 Java 源代码。

从 .NET 7 开始,项目目录中的所有 **\*.java 文件都会自动具有 AndroidJavaSource 的生成操作, 将在程序集生成之前绑定。 允许 C# 代码轻松使用 **\*.java 文件中存在的类型和成员。

项目元数据名称 说明
绑定 可选的布尔值。 指定 Java 源文件是否应为其生成 C# 绑定。 默认为 true

.NET 7 中引入了对此生成项的支持。

AndroidLibrary

表示 .jar/.aar 要绑定并包含在项目中的文件。

<ItemGroup>
  <AndroidLibrary Include="foo.jar" />
  <AndroidLibrary Include="bar.aar" />
</ItemGroup>
项目元数据名称 说明
绑定 可选的布尔值。 指定 Java 库是否应为其生成 C# 绑定。 默认为 true
可选的布尔值。 指定是否应将 Java 库包含在项目输出中。 默认为 true

AndroidMavenLibrary

表示应从 Maven 存储库下载并由绑定项目进行绑定的 .jar/.aar 文件。

这对于简化在 Maven 中托管的构件的 .NET for Android 绑定维护非常有用。

<!-- Include format is {GroupId}:{ArtifactId} -->
<ItemGroup>
  <AndroidMavenLibrary Include="com.squareup.okhttp3:okhttp" Version="4.9.3" />
</ItemGroup>
项目元数据名称 说明
版本 必选字符串。 应从 Maven 下载的 Java 库的版本。 默认为 true
存储库 可选的字符串。 指定要使用的 Maven 存储库。 支持的值为 CentralGoogle,或 Maven 存储库的 https URL。 默认为 Central
绑定 可选的布尔值。 指定 Java 库是否应为其生成 C# 绑定。 默认为 true
可选的布尔值。 指定是否应将 Java 库包含在项目输出中。 默认为 true

有关更多详细信息, 请参阅 AndroidMavenLibrary 文档

.NET 9 中引入了对此生成项的支持。

EmbeddedJar

此生成项已弃用,由 AndroidLibrary 项替换

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

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

在 .NET for Android 绑定项目中, EmbeddedJar 生成操作将 Java/Kotlin 库绑定到库,并将 .jar 该文件嵌入库中。 当 .NET for Android 应用程序项目使用库时,它将有权从 C# 访问 Java/Kotlin API,并在最终的 Android 应用程序中包括 Java/Kotlin 代码。

EmbeddedReferenceJar

此生成项已弃用,并由带有Bind元数据设置为falseAndroidLibrary项替换。

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

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

在 .NET for Android 绑定项目中,EmbeddedReferenceJar 生成操作将 .jar 文件嵌入到库中,但不像 EmbeddedJar 那样创建 C# 绑定。 当 .NET for Android 应用程序项目使用库时,它将在最终的 Android 应用程序中包括 Java/Kotlin 代码。

JavaSourceJar

表示一个 Java 源代码.jar,其中包含应从中导入 API 文档的 Javadoc 文档注释

Javadoc 将转换为 生成的绑定源代码中的 C# XML 文档注释

$(AndroidJavadocVerbosity) 控制导入的 Javadoc 的“冗长”或“全面”程度。

项目元数据名称 说明
CopyrightFile 可选的字符串。 包含 Javadoc 内容版权信息的文件路径,该信息将添加到所有导入的文档中。
URL前缀 可选的字符串。 用于支持链接到导入文档中的在线文档的 URL 前缀。
URL样式 可选的字符串。 链接到联机文档时要生成的 URL 的“样式”。 当前仅支持一种样式:developer.android.com/reference@2020-Nov
DocRootUrl 可选的字符串。 用于代替导入文档中所有 {@docroot} 实例的 URL 前缀。

LibraryProjectZip

此生成项已弃用,并替换为 AndroidLibrary 生成项。

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

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

LibraryProjectZip 生成操作绑定 Java/Kotlin 库,并将.zip.aar文件嵌入库中。 当 .NET for Android 应用程序项目使用库时,它将有权从 C# 访问 Java/Kotlin API,并在最终的 Android 应用程序中包括 Java/Kotlin 代码。