生成目标

以下生成目标在适用于 Android 项目的 .NET 中定义。

生成

在项目和所有依赖项中生成源代码。

此目标不会创建 Android 包(.apk 文件)。 若要创建 Android 包,请使用 SignAndroidPackage 目标,或在进行生成时将 `$(AndroidBuildApplicationPackage) 属性设置为 True:

msbuild /p:AndroidBuildApplicationPackage=True App.sln

BuildAndStartAotProfiling

使用嵌入的 AOT 探查器生成应用,将探查器 TCP 端口设置为 $(AndroidAotProfilerPort),并启动默认活动。

默认的 TCP 端口为 9999

在 Xamarin.Android 10.2 中新增。

Clean

删除由生成过程生成的所有文件。

FinishAotProfiling

必须在 BuildAndStartAotProfiling 目标之后调用。

通过 TCP 端口 从设备或模拟器收集 AOT 探查器数据,$(AndroidAotProfilerPort) 并将其写入 $(AndroidAotCustomProfilePath)

端口和自定义配置文件的默认值分别为 9999custom.aprof

要将其他选项传递到 aprofutil,请在以下位置设置它们 $(AProfUtilExtraOptions) 属性。

这等效于:

aprofutil $(AProfUtilExtraOptions) -s -v -f -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)"

在 Xamarin.Android 10.2 中新增。

GetAndroidDependencies

创建 @(AndroidDependency) 项组,该组由 InstallAndroidDependencies 目标用于确定要安装的 Android SDK 包。

安装

创建 Android 包、进行签名,并将其安装到默认设备或虚拟设备中。

$(AdbTarget) 属性指定 Android 包可能要安装到或从中删除的 Android 目标设备。

# Install package onto emulator via -e
# Use `/Library/Frameworks/Mono.framework/Commands/msbuild` on OS X
MSBuild /t:Install ProjectName.csproj /p:AdbTarget=-e

InstallAndroidDependencies

调用 GetAndroidDependencies 目标,然后安装 @(AndroidDependency) 项组中指定的 Android SDK 包。

dotnet build -t:InstallAndroidDependencies -f net8.0-android "-p:AndroidSdkDirectory=<path to sdk>" "-p:JavaSdkDirectory=<path to java sdk>"

需要 -f net8.0-android 此目标,因为此目标是适用于 Android 特定目标的 .NET。 如果省略此参数,将收到以下错误:

error MSB4057: The target "InstallAndroidDependencies" does not exist in the project.

JavaSdkDirectory需要AndroidSdkDirectory属性,因为我们需要知道在何处安装所需的组件。 这些目录可以为空或现有目录。 SDK 组件将安装在现有 SDK 安装之上。

$(AndroidManifestType) MSBuild 属性控制哪些 Visual Studio SDK Manager 存储库用于包名称和包版本检测,以及要下载的 URL。

RunWithLogging

运行启用了其他日志记录的应用程序。 报告或调查应用程序或运行时的问题时非常有用。 如果成功,输出到屏幕的消息将显示日志文件的位置以及记录的消息。

影响目标工作原理的属性:

  • /p:RunLogVerbose=true 从 MonoVM 启用更详细的日志记录
  • /p:RunLogDelayInMS=X 其中 X 应替换为在将日志输出写入文件之前等待的时间(以毫秒为单位)。 默认为 1000

SignAndroidPackage

创建 Android 包 (.apk) 文件并进行签名。

用于 /p:Configuration=Release,生成自包含的“发行”包。

StartAndroidActivity

在设备或正在运行的模拟器上启动默认活动。

若要启动其他活动,请将 $(AndroidLaunchActivity) 属性设置为活动名称。

这等效于:

adb shell am start -S -n @PACKAGE_NAME@/$(AndroidLaunchActivity)

在 Xamarin.Android 10.2 中新增。

StopAndroidPackage

在设备或正在运行的模拟器上完全停止应用程序包。

这等效于:

adb shell am force-stop @PACKAGE_NAME@

在 Xamarin.Android 10.2 中新增。

卸载

从默认设备或虚拟设备中卸载 Android 包。

$(AdbTarget) 属性指定 Android 包可能要安装到或从中删除的 Android 目标设备。

UpdateAndroidResources

更新 Resource.designer.cs 文件。

将新的资源添加到项目中时,这个目标通常由 IDE 调用。