다음을 통해 공유


빌드 대상

다음 빌드 대상은 Android용 .NET 프로젝트에 정의되어 있습니다.

빌드

프로젝트 및 모든 종속성 안에 소스 코드를 빌드합니다.

이 대상은 Android 패키지(.apk 파일)를 만들지 않습니다. Android 패키지를 만들려면, 다음을 빌드할 때 SignAndroidPackage 대상을 사용하거나, `$(AndroidBuildApplicationPackage) 속성을 True로 설정합니다.

msbuild /p:AndroidBuildApplicationPackage=True App.sln

BuildAndStartAotProfiling

포함된 AOT 프로파일러를 사용하여 앱을 빌드하고, 프로파일러 TCP 포트를 $(AndroidAotProfilerPort)로 설정하고, 기본 작업을 시작합니다.

기본 TCP 포트는 9999입니다.

Xamarin.Android 10.2에 추가되었습니다.

정리

빌드 프로세스에서 생성된 파일을 모두 제거합니다.

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) 설치할 Android SDK 패키지를 결정하는 데 사용되는 InstallAndroidDependencies 항목 그룹을 만듭니다.

설치

기본 디바이스 또는 가상 디바이스에 패키지를 만들고 서명하여 설치합니다.

$(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.

AndroidSdkDirectory 필요한 구성 요소를 설치할 위치를 알아야 하므로 속성과 JavaSdkDirectory 속성이 필요합니다. 이러한 디렉터리 또는 기존 디렉터리일 수 있습니다. Sdk 구성 요소는 기존 sdk 설치 위에 설치됩니다.

MSBuild 속성은 $(AndroidManifestType) 패키지 이름 및 패키지 버전 검색 및 다운로드할 URL에 사용되는 Visual Studio SDK Manager 리포지 토리를 제어합니다.

RunWithLogging

추가 로깅을 사용하도록 설정된 애플리케이션을 실행합니다. 애플리케이션 또는 런타임과 관련된 문제를 보고하거나 조사할 때 유용합니다. 성공하면 화면에 인쇄된 메시지는 기록된 메시지와 함께 logcat 파일의 위치를 표시합니다.

대상의 작동 방식에 영향을 미치는 속성:

  • /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에 의해 호출됩니다.