다음을 통해 공유


바인딩 프로젝트 MSBuild 항목

참고 항목

Android용 .NET에서는 기술적으로 애플리케이션과 바인딩 프로젝트를 구분하지 않으므로 이러한 항목은 둘 다에서 작동합니다. 실제로는 별도의 애플리케이션 및 바인딩 프로젝트를 만드는 것이 좋습니다. 애플리케이션 프로젝트에서 주로 사용되는 빌드 항목은 MSBuild 항목 참조 가이드에 설명되어 있습니다.

항목 빌드

항목 설명
AndroidAdditionalJavaManifest
.NET 9에 추가됨
Java 종속성을 확인하는 데 필요한 추가 POM 파일을 나타냅니다.

설명서
AndroidIgnoredJavaDependency
.NET 9에 추가됨
Java 종속성을 확인할 때 무시해야 하는 Java 종속성을 나타냅니다.

설명서
AndroidJavaSource 프로젝트에 컴파일되고 포함해야 하는 Java 원본 파일(.java)을 나타냅니다.

설명서
AndroidLibrary .jar/.aar 바인딩 프로젝트에 바인딩할 파일을 나타냅니다.

설명서
AndroidMavenLibrary
.NET 9에 추가됨
.jar/.aar Maven 리포지토리에서 다운로드하고 바인딩 프로젝트에 의해 바인딩되어야 하는 파일을 나타냅니다.

설명서
AndroidNamespaceReplacement 결과 관리되는 네임스페이스가 .NET 규칙에 더 적합하도록 Java 패키지 이름에 적용해야 하는 변환을 나타냅니다.

설명서
JavaSourceJar API 설명서를 가져와야 하는 Java 소스 코드를 .jar 나타냅니다.

설명서

사용되지 않는 빌드 항목

이러한 MSBuild 항목은 더 이상 사용되지 않습니다. 계속 작동하는 동안 나열된 최신 항목으로 마이그레이션하는 것이 좋습니다.

항목 설명
AndroidAarLibrary
Deprecated
프로젝트 출력에 포함할 Android .aar 파일을 나타냅니다.

설명서
AndroidJavaLibrary
Deprecated
프로젝트 출력에 포함할 Android .jar 파일을 나타냅니다.

설명서
EmbeddedJar
Deprecated
바인딩되어 프로젝트 출력에 포함할 Android .jar 파일을 나타냅니다.

설명서
EmbeddedReferenceJar
Deprecated
프로젝트 출력에 포함할 Android .jar 파일을 나타냅니다.

설명서
LibraryProjectZip
Deprecated
프로젝트 출력에 포함할 Android .aar 파일을 나타냅니다.

설명서

AndroidAarLibrary

이 빌드 항목은 더 이상 사용되지 않으며 AndroidLibrary 항목으로 대체됩니다.

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

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

.aar 파일을 직접 참조하려면 AndroidAarLibrary의 빌드 작업을 사용해야 합니다. 이 빌드 동작은 Xamarin 구성 요소에서 가장 일반적으로 사용됩니다. 즉, Google Play 및 기타 서비스를 작동하는 데 필요한 파일에 대한 참조 .aar 를 포함합니다.

이 빌드 동작을 사용하는 파일은 라이브러리 프로젝트에 있는 포함 리소스와 비슷한 방식으로 처리됩니다. .aar은 중간 디렉터리로 추출됩니다. 그런 다음, 모든 자산, 자원 및 .jar 파일이 적절한 항목 그룹에 포함됩니다.

AndroidAdditionalJavaManifest

<AndroidAdditionalJavaManifest>는 Java 종속성 확인과 함께 사용됩니다.

종속성을 확인하는 데 필요한 추가 POM 파일을 지정하는 데 사용됩니다. 이러한 파일은 종종 Java 라이브러리의 POM 파일에서 참조하는 부모 또는 가져온 POM 파일입니다.

<ItemGroup>
  <AndroidAdditionalJavaManifest Include="mylib-parent.pom" JavaArtifact="com.example:mylib-parent" JavaVersion="1.0.0" />
</ItemGroup>
항목 메타데이터 이름 설명
JavaArtifact 필수 문자열입니다. 형식 {GroupId}:{ArtifactId}의 지정된 POM 파일과 일치하는 Java 라이브러리의 그룹 및 아티팩트 ID입니다.
JavaVersion 필수 문자열입니다. 지정된 POM 파일과 일치하는 Java 라이브러리의 버전입니다.

자세한 내용은 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>
항목 메타데이터 이름 설명
버전 필수 문자열입니다. 지정된 종속성과 일치하는 Java 라이브러리의 버전입니다.

자세한 내용은 Java 종속성 확인 설명서를 참조하세요.

이 빌드 항목에 대한 지원은 .NET 9에서 도입되었습니다.

AndroidJavaLibrary

이 빌드 항목은 더 이상 사용되지 않으며 AndroidLibrary 항목으로 대체됩니다.

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

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

빌드 동작이 AndroidJavaLibrary 있는 파일은 최종 Android 패키지에 포함될 Java 보관 파일( .jar 파일)입니다.

AndroidJavaSource

AndroidJavaSource 파일은 최종 Android 패키지에 컴파일되고 포함되는 Java 소스 코드입니다.

.NET 7부터 프로젝트 디렉터리 내의 AndroidJavaSource모든 **\*.java 파일에는 자동으로 빌드 작업이 있으며셈블리 빌드 전에 바인딩됩니다. C# 코드에서 파일 내에 있는 형식 및 멤버를 **\*.java 쉽게 사용할 수 있습니다.

항목 메타데이터 이름 설명
바인딩 선택적 부울입니다. Java 원본 파일에 C# 바인딩이 생성되어야 하는지 여부를 지정합니다. 기본값은 true입니다.

이 빌드 항목에 대한 지원은 .NET 7에서 도입되었습니다.

AndroidLibrary

.jar/.aar 바인딩되어 프로젝트에 포함할 파일을 나타냅니다.

<ItemGroup>
  <AndroidLibrary Include="foo.jar" />
  <AndroidLibrary Include="bar.aar" />
</ItemGroup>
항목 메타데이터 이름 설명
바인딩 선택적 부울입니다. Java 라이브러리에 C# 바인딩이 생성되어야 하는지 여부를 지정합니다. 기본값은 true입니다.
Pack 선택적 부울입니다. Java 라이브러리를 프로젝트 출력에 포함할지 여부를 지정합니다. 기본값은 true입니다.

AndroidMavenLibrary

.jar/.aar Maven 리포지토리에서 다운로드하고 바인딩 프로젝트에 의해 바인딩되어야 하는 파일을 나타냅니다.

이는 Maven에서 호스트되는 아티팩트용 Android 바인딩에 대한 .NET의 유지 관리를 간소화하는 데 유용할 수 있습니다.

<!-- Include format is {GroupId}:{ArtifactId} -->
<ItemGroup>
  <AndroidMavenLibrary Include="com.squareup.okhttp3:okhttp" Version="4.9.3" />
</ItemGroup>
항목 메타데이터 이름 설명
버전 필수 문자열입니다. Maven에서 다운로드해야 하는 Java 라이브러리의 버전입니다. 기본값은 true입니다.
리포지토리 선택적 문자열입니다. 사용할 Maven 리포지토리를 지정합니다. 지원되는 값은 CentralGoogleMaven 리포지토리의 URL입니다https. 기본값은 Central입니다.
바인딩 선택적 부울입니다. Java 라이브러리에 C# 바인딩이 생성되어야 하는지 여부를 지정합니다. 기본값은 true입니다.
Pack 선택적 부울입니다. Java 라이브러리를 프로젝트 출력에 포함할지 여부를 지정합니다. 기본값은 true입니다.

자세한 내용은 AndroidMavenLibrary 설명서를 참조하세요.

이 빌드 항목에 대한 지원은 .NET 9에서 도입되었습니다.

EmbeddedJar

이 빌드 항목은 더 이상 사용되지 않으며 AndroidLibrary 항목으로 대체됩니다.

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

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

Android용 .NET 바인딩 프로젝트에서 EmbeddedJar 빌드 작업은 Java/Kotlin 라이브러리를 바인딩하고 파일을 라이브러리에 포함합니다 .jar . Android용 .NET 애플리케이션 프로젝트에서 라이브러리를 사용하는 경우 C#에서 Java/Kotlin API에 액세스할 수 있을 뿐만 아니라 최종 Android 애플리케이션에 Java/Kotlin 코드를 포함합니다.

EmbeddedReferenceJar

이 빌드 항목은 더 이상 사용되지 않으며 Bind 메타데이터가 />로 설정된 falseAndroidLibrary 항목으로 대체됩니다.

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

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

Android용 .NET 바인딩 프로젝트에서 EmbeddedReferenceJar 빌드 작업은 파일을 라이브러리에 포함 .jar 하지만 EmbeddedJar처럼 C# 바인딩을 만들지 않습니다. Android용 .NET 애플리케이션 프로젝트에서 라이브러리를 사용하는 경우 최종 Android 애플리케이션에 Java/Kotlin 코드가 포함됩니다.

JavaSourceJar

API 설명서를 가져와야 하는 Javadoc 설명서 주석이 포함된 Java 소스 코드를 .jar 나타냅니다.

Javadoc는 생성된 바인딩 소스 코드 내에서 C# XML 문서 주석으로 변환됩니다.

$(AndroidJavadocVerbosity)는 가져온 Javadoc가 얼마나 “자세한지” 또는 “완전한지”를 제어합니다.

항목 메타데이터 이름 설명
CopyrightFile 선택적 문자열입니다. 가져온 모든 설명서에 추가될 Javadoc 콘텐츠에 대한 저작권 정보가 포함된 파일의 경로입니다.
UrlPrefix 선택적 문자열입니다. 가져온 설명서 내에서 온라인 설명서에 대한 연결을 지원하는 URL 접두사입니다.
UrlStyle 선택적 문자열입니다. 온라인 설명서에 연결할 때 생성할 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 파일을 포함합니다. Android용 .NET 애플리케이션 프로젝트에서 라이브러리를 사용하는 경우 C#에서 Java/Kotlin API에 액세스할 수 있을 뿐만 아니라 최종 Android 애플리케이션에 Java/Kotlin 코드를 포함합니다.