Xamarin.Android, Xamarin.iOS ve Xamarin.Mac projelerini .NET'e yükseltme
Xamarin yerel projelerinizi .NET'e yükseltmek için:
- Proje dosyanızı SDK stilinde olacak şekilde güncelleştirin.
- Uyumsuz bağımlılıkları .NET 8 sürümleriyle güncelleştirin veya değiştirin.
- Uygulamanızı derleyin ve test edin.
Çoğu projede ad alanlarını değiştirmeniz veya başka yeniden yazma işlemleri yapmanız gerekmez.
Yükseltme işlemini basitleştirmek için Xamarin yerel projenizle aynı türde ve ada sahip yeni bir .NET projesi oluşturmanızı ve ardından kodunuzu kopyalamanızı öneririz. Aşağıda özetlenen yaklaşım budur.
Yeni proje oluşturma
Visual Studio'da, Xamarin yerel projenizle aynı türde ve ada sahip yeni bir .NET projesi oluşturun. Örneğin, Xamarin.Android'den Android için .NET'e yükseltmek için Android Uygulaması proje şablonunu seçin:
Yeni projeye mevcut projenizle aynı proje ve paket adı verilmelidir ve yeni bir klasöre yerleştirilmelidir. Proje dosyasını açtığınızda .NET SDK stilinde bir projeniz olduğunu onaylar:
<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>
Önemli
Hedef çerçeve takma adı (TFM), projeyi .NET kullanarak (bu örnekte .NET 8) olarak belirtir. Eşdeğer Xamarin yerel projeleri için geçerli TFM'ler net8.0-android, net8.0-ios, net8.0-macos ve net8.0-tvos'tır. SDK stili projelerdeki hedef çerçeveler hakkında bilgi için bkz . SDK stili projelerde hedef çerçeveler.
Geliştirme ortamınızın uygulamayı oluşturabildiğini onaylamak için uygulamayı başlatın.
Dosyaları birleştirme
Kodunuzu ve kaynak dosyalarınızı Xamarin yerel projenizin klasörlerinden yeni uygulamanızdaki aynı klasörlere kopyalayın. Aynı ada sahip dosyaların üzerine yazmanız gerekir.
Başka kitaplık projeleriniz varsa, bunları yeni çözümünüze eklemeli ve yeni .NET projenizden bunlara proje başvuruları eklemelisiniz.
Ayrıca koşullu derleme bağımsız değişkenleri ve kod imzalama gibi ayarlar için Xamarin yerel projenizdeki bazı proje özelliklerini yeni .NET projenize kopyalamanız gerekir. Projeleri ayrı Visual Studio örneklerinde yan yana açmak, proje özelliklerini karşılaştırmanıza olanak tanır. Alternatif olarak, yeni proje dosyasını doğrudan düzenleyerek ayarları geçirebilirsiniz. Daha fazla bilgi için bkz . Xamarin.Android proje geçişi ve Xamarin Apple proje geçişi.
Bağımlılıkları güncelleştirme
Genel olarak, Xamarin yerel NuGet paketleri .NET TFM'leri kullanılarak yeniden derlenmedikleri sürece .NET 8 ile uyumlu değildir. Ancak Android uygulamaları için .NET, ve monoandroidXX.X
çerçevelerini hedefleyen monoandroid
NuGet paketlerini kullanabilir.
Kullandığınız paketin NuGet'teki Çerçeveler sekmesine bakarak ve aşağıdaki tabloda gösterilen uyumlu çerçevelerden birini listeleyip listelediğini denetleyerek paketin .NET 8 uyumlu olduğunu onaylayabilirsiniz:
Uyumlu çerçeveler | Uyumsuz çerçeveler |
---|---|
net8.0-android, monoandroid, monoandroidXX.X | |
net8.0-ios | monotouch, xamarinios, xamarinios10 |
net8.0-macos | monomac, xamarinmac, xamarinmac20 |
net8.0-tvos | xamarintvos |
xamarinwatchos |
Not
Yukarıda listelenen uyumsuz çerçevelere bağımlılığı olmayan .NET Standart kitaplıkları yine de .NET 8 ile uyumludur.
NuGet üzerindeki bir paket, uyumlu olmayan çerçeveler de dahil olmak üzere yukarıdaki uyumlu çerçevelerden herhangi biriyle uyumluluğu gösteriyorsa, paket uyumludur. Uyumlu NuGet paketleri, Visual Studio'daki NuGet paket yöneticisi kullanılarak .NET yerel projenize eklenebilir.
NuGet paketinin .NET 8 uyumlu sürümünü bulamıyorsanız:
- Kodun sahibiyseniz paketi .NET TFM'leri ile yeniden derleyebilirsiniz.
- Paketin .NET 8 sürümünün önizleme sürümünü arayın.
- Bağımlılığı .NET 8 uyumlu bir alternatifle değiştirin.
Android için .NET veya iOS için .NET uygulamasında Xamarin.Essentials kodunu geçirme hakkında bilgi için bkz . Android için .NET'te Xamarin.Essentials kodunu ve iOS uygulamaları için .NET'i geçirme.
Derleme ve sorun giderme
Bağımlılıklarınız çözümlendikten ve kodunuz ve kaynak dosyalarınız .NET yerel projenize eklendikten sonra projenizi oluşturmanız gerekir. Hatalar sonraki adımlarda size yol gösterir.
İpucu
- Özellikle .NET sürümlerini değiştirirken Visual Studio'da proje açmadan ve oluşturmadan önce tüm projelerden tüm bölme ve obj klasörlerini silin.
- Oluşturulan Resource.designer.cs dosyayı Android projesinden silin.