Xamarin.Android, Xamarin.iOS 및 Xamarin.Mac 프로젝트를 .NET으로 업그레이드
Xamarin 네이티브 프로젝트를 .NET으로 업그레이드하려면 다음을 수행해야 합니다.
- 프로젝트 파일을 SDK 스타일로 업데이트합니다.
- 호환되지 않는 종속성을 .NET 8 버전으로 업데이트하거나 대체합니다.
- 앱을 컴파일하고 테스트합니다.
대부분의 프로젝트에서는 네임스페이스를 변경하거나 다른 재작성을 수행할 필요가 없습니다.
업그레이드 프로세스를 간소화하려면 Xamarin 네이티브 프로젝트와 동일한 형식 및 이름의 새 .NET 프로젝트를 만든 다음 코드를 복사하는 것이 좋습니다. 아래에 설명된 접근 방식입니다.
새 프로젝트 만들기
Visual Studio에서 Xamarin 네이티브 프로젝트와 동일한 형식 및 이름의 새 .NET 프로젝트를 만듭니다. 예를 들어 Xamarin.Android에서 Android용 .NET으로 업그레이드하려면 Android 애플리케이션 프로젝트 템플릿을 선택합니다.
새 프로젝트에는 기존 프로젝트와 동일한 프로젝트 및 패키지 이름이 지정되어야 하며 새 폴더에 배치해야 합니다. 프로젝트 파일을 열면 .NET SDK 스타일 프로젝트가 있는지 확인합니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
<OutputType>Exe</OutputType>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<ApplicationId>com.companyname.AndroidApp2</ApplicationId>
<ApplicationVersion>1</ApplicationVersion>
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
</PropertyGroup>
</Project>
Important
TFM(대상 프레임워크 모니커)은 .NET(이 경우 .NET 8)을 사용하는 것으로 프로젝트를 나타냅니다. 동등한 Xamarin 네이티브 프로젝트에 유효한 TFM은 net8.0-android, net8.0-ios, net8.0-macos 및 net8.0-tvos입니다. SDK 스타일 프로젝트의 대상 프레임워크에 대한 자세한 내용은 SDK 스타일 프로젝트의 대상 프레임워크를 참조하세요.
앱을 시작하여 개발 환경에서 앱을 빌드할 수 있음을 확인합니다.
파일 병합
Xamarin 네이티브 프로젝트의 폴더에서 새 앱 내의 동일한 폴더로 코드 및 리소스 파일을 복사합니다. 동일한 이름의 파일을 덮어써야 합니다.
다른 라이브러리 프로젝트가 있는 경우 새 솔루션 에 추가하고 새 .NET 프로젝트에서 프로젝트 참조 를 추가해야 합니다.
또한 조건부 컴파일 인수 및 코드 서명과 같은 설정을 위해 Xamarin 네이티브 프로젝트에서 새 .NET 프로젝트로 일부 프로젝트 속성을 복사해야 합니다. 별도의 Visual Studio 인스턴스에서 프로젝트를 나란히 열면 프로젝트 속성을 비교할 수 있습니다. 또는 새 프로젝트 파일을 직접 편집하여 설정을 마이그레이션할 수 있습니다. 자세한 내용은 Xamarin.Android 프로젝트 마이그레이션 및 Xamarin Apple 프로젝트 마이그레이션을 참조하세요.
종속성 업데이트
일반적으로 Xamarin 네이티브 NuGet 패키지는 .NET TFM을 사용하여 다시 컴파일되지 않은 한 .NET 8과 호환되지 않습니다. 그러나 Android용 .NET 앱은 및 monoandroidXX.X
프레임워크를 대상으로 하는 monoandroid
NuGet 패키지를 사용할 수 있습니다.
사용 중인 패키지에 대한 NuGet의 프레임워크 탭을 살펴보고 다음 표에 표시된 호환 가능한 프레임워크 중 하나를 나열하는 검사 패키지가 .NET 8과 호환되는지 확인할 수 있습니다.
호환되는 프레임워크 | 호환되지 않는 프레임워크 |
---|---|
net8.0-android, monoandroid, monoandroidXX.X | |
net8.0-ios | monotouch, xamarinios, xamarinios10 |
net8.0-macos | monomac, xamarinmac, xamarinmac20 |
net8.0-tvos | xamarintvos |
xamarinwatchos |
참고 항목
위에 나열된 호환되지 않는 프레임워크에 대한 종속성이 없는 .NET Standard 라이브러리는 여전히 .NET 8과 호환됩니다.
NuGet의 패키지가 호환되지 않는 프레임워크를 포함하여 위의 호환되는 프레임워크와의 호환성을 나타내는 경우 패키지는 호환됩니다. Visual Studio에서 NuGet 패키지 관리자를 사용하여 호환되는 NuGet 패키지를 .NET 네이티브 프로젝트에 추가할 수 있습니다.
NuGet 패키지의 .NET 8 호환 버전을 찾을 수 없는 경우 다음을 수행해야 합니다.
- 코드를 소유한 경우 .NET TFM을 사용하여 패키지를 다시 컴파일합니다.
- 패키지의 .NET 8 버전 미리 보기 릴리스를 찾습니다.
- 종속성을 .NET 8 호환 대안으로 대체합니다.
Android용 .NET 또는 iOS용 .NET 앱에서 Xamarin.Essentials 코드를 마이그레이션하는 방법에 대한 자세한 내용은 Android용 .NET 및 iOS 앱용 .NET에서 Xamarin.Essentials 코드 마이그레이션을 참조 하세요.
컴파일 및 문제 해결
종속성이 확인되고 코드 및 리소스 파일이 .NET 네이티브 프로젝트에 추가되면 프로젝트를 빌드해야 합니다. 모든 오류는 다음 단계를 안내합니다.
팁
- 특히 .NET 버전을 변경할 때 Visual Studio에서 프로젝트를 열고 빌드하기 전에 모든 프로젝트에서 모든 bin및 obj 폴더를 삭제합니다.
- Android 프로젝트에서 생성된 Resource.designer.cs 파일을 삭제합니다.
.NET MAUI