生成目标
以下生成目标在适用于 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)
。
端口和自定义配置文件的默认值分别为 9999
和 custom.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 调用。