Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
İster yeni bir UWP uygulaması yazıyor ister mevcut bir Windows 8.x uygulamasını (daha önce Microsoft Store uygulaması olarak da adlandırılıyor) geçiriyor olun, aynı yordam kümesini izleyebilirsiniz. Yerel .NET uygulaması oluşturmak için şu adımları izleyin:
bir Evrensel Windows Platformu (UWP) uygulaması oluşturun ve düzgün çalıştığından emin olmak için uygulamanızın hata ayıklama derlemelerini test edin.
Eksik meta verileriel ile çözün ve tüm sorunlar çözülene kadar adım 3 yineleyin.
Uyarı
Mevcut bir Windows 8.x uygulamasını .NET Native'e geçiriyorsanız, Windows 8.x Uygulamanızı .NET Native'e Geçirme kılavuzunu gözden geçirdiğinizden emin olun.
1. Adım: UWP uygulamanızın hata ayıklama derlemelerini geliştirme ve test etme
İster yeni bir uygulama geliştirirken ister mevcut bir uygulamayı geçirirken, herhangi bir Windows uygulamasıyla aynı işlemi izlersiniz.
Visual C# veya Visual Basic için Evrensel Windows uygulama şablonunu kullanarak Visual Studio'da yeni bir UWP projesi oluşturun. Varsayılan olarak, tüm UWP uygulamaları CoreCLR'yi hedefler ve yayın derlemeleri .NET Native araç zinciri kullanılarak derlenir.
UWP uygulama projelerini yerel .NET araç zinciriyle derleme ile bunlar olmadan arasında bilinen bazı uyumluluk sorunları olduğunu unutmayın. Daha fazla bilgi için geçiş kılavuzu bakın.
Artık yerel sistemde (veya simülatörde) çalışan .NET Native yüzey alanına C# veya Visual Basic kodu yazabilirsiniz.
Önemli
Uygulamanızı geliştirirken, kodunuzda serileştirme veya yansıma kullanımını not edin.
Varsayılan olarak, hata ayıklama derlemeleri hızlı F5 dağıtımını etkinleştirmek için JIT ile derlenirken, yayın derlemeleri .NET Yerel derleme öncesi teknolojisi kullanılarak derlenir. Bu, uygulamanızın .NET Yerel araç zinciriyle derlemeden önce normal şekilde çalıştığından emin olmak için hata ayıklama derlemelerini oluşturmanız ve test edeceğiniz anlamına gelir.
2. Adım: Ek yansıma ve serileştirme kullanımını işleme
Default.rd.xmlbir çalışma zamanı yönergeleri dosyası, oluşturduğunuzda projenize otomatik olarak eklenir. C# dilinde geliştirirseniz, projenizin Özellikler klasöründe bulunur. Visual Basic'te geliştiriyorsanız, projenizin My Project klasöründe bulunur.
Uyarı
Çalışma zamanı yönergeleri dosyasının neden gerektiğini açıklayan .NET Native derleme işlemine genel bakış için bkz. .NET Native ve Derleme.
Çalışma zamanı yönergeleri dosyası, uygulamanızın çalışma zamanında ihtiyaç duyduğu meta verileri tanımlamak için kullanılır. Bazı durumlarda, dosyanın varsayılan sürümü yeterli olabilir. Ancak, serileştirme veya yansıma kullanan bazı kodlar çalışma zamanı yönergeleri dosyasında ek girişler gerektirebilir.
Serileştirme
İki seri hale getirici kategorisi vardır ve her ikisi de çalışma zamanı yönergeleri dosyasında ek girdiler gerektirebilir:
Yansıma tabanlı olmayan serileştiriciler. DataContractSerializer, DataContractJsonSerializer ve XmlSerializer sınıfları gibi .NET Framework sınıf kitaplığında bulunan serileştiriciler yansımaya dayanmaz. Ancak, seri hale getirilecek veya seri durumdan çıkarılacak nesneye göre kod oluşturulmasını gerektirir. Daha fazla bilgi için Serialization and Metadata içindeki "Microsoft Seri Hale Getiriciler" bölümüne bakın.
Üçüncü taraf serileştiriciler. En yaygın olanı Newtonsoft JSON seri hale getiricisi olan üçüncü taraf serileştirme kitaplıkları genellikle yansıma tabanlıdır ve nesne serileştirmeyi ve seri durumdan çıkarmayı desteklemek için *.rd.xml dosyasında girdiler gerektirir. Daha fazla bilgi için serileştirme ve meta veri
"Üçüncü Taraf Seri Hale Getiriciler" bölümüne bakın.
yansıma kullanan
Bazı durumlarda kodda yansıma kullanımı belirgin değildir. Bazı yaygın API'ler veya programlama desenleri yansıma API'sinin bir parçası olarak kabul edilmez, ancak başarılı bir şekilde yürütülmek için yansımayı kullanır. Bu, aşağıdaki tür örnekleme ve yöntem oluşturma yöntemlerini içerir:
Type.MakeGenericType yöntemi
Array.CreateInstance ve Type.MakeArrayType yöntemleri
MethodInfo.MakeGenericMethod yöntemi.
Daha fazla bilgi için bkz. YansımaKullanan
Uyarı
Çalışma zamanı yönergeleri dosyalarında kullanılan tür adlarının tam olarak nitelenmiş olması gerekir. Örneğin, dosya "String" yerine "System.String" belirtmelidir.
3. Adım: Uygulamanızın yayın derlemelerini dağıtma ve test etme
Çalışma zamanı yönergeleri dosyasını güncelleştirdikten sonra uygulamanızın yayın derlemelerini yeniden derleyebilir ve dağıtabilirsiniz. .NET Yerel ikili dosyalar, projenin Build çıkış yolu metin kutusunda belirtilen dizinin ILC.out alt dizinine, Properties iletişim kutusunda, Compile sekmesinde yerleştirilir. Bu klasörde olmayan ikili dosyalar .NET Native ile derlenmemiştir. Uygulamanızı kapsamlı bir şekilde test edin ve hata senaryoları dahil olmak üzere tüm senaryoları hedef platformlarının her birinde test edin.
Uygulamanız düzgün çalışmıyorsa (özellikle çalıştırma sırasında "MissingMetadataException " veya "MissingInteropDataException " istisnalarını oluşturuyorsa), bir sonraki bölümdeki yönergeleri izleyin: 4. Adım: Eksik Meta Verileri El ile Çözümleme. Birinci şans özel durumlarını etkinleştirmek bu hataları bulmanıza yardımcı olabilir.
Uygulamanızın hata ayıklama derlemelerini test edip hata ayıkladığınızda ve MissingMetadataException ve MissingInteropDataException özel durumlarını ortadan kaldırdığınızda uygulamanızı iyileştirilmiş .NET Yerel uygulama olarak test etmelisiniz. Bunu yapmak için, etkin proje yapılandırmanızı Hata Ayıklama yerine Sürümolarak değiştirin.
4. Adım: Eksik meta verileri el ile çözme
.NET Native ile masaüstünde karşılaşmadığınız en yaygın hata, bir çalışma zamanı MissingMetadataException, MissingInteropDataException veya MissingRuntimeArtifactException özel durumu olacaktır. Bazı durumlarda meta verilerin olmaması, öngörülemeyen davranışlarda ve hatta uygulama hatalarında kendini gösterebilir. Bu bölümde, çalışma zamanı yönergeleri dosyasına yönergeler ekleyerek bu özel durumların hatalarını nasıl ayıklayabileceğiniz ve çözebileceğiniz açıklanır. Çalışma zamanı yönergelerinin biçimi hakkında bilgi için bkz. Çalışma Zamanı Yönergeleri (rd.xml) Yapılandırma Dosyası Başvurusu. Çalışma zamanı yönergelerini ekledikten sonra, uygulamanızı tekrar dağıtıp test edin ve yeni bir
Tavsiye
Uygulamanızın kod değişikliklerine dayanıklı olmasını sağlamak için çalışma zamanı yönergelerini üst düzeyde belirtin. Ad alanı ve tür düzeylerinde çalışma zamanı yönergeleri eklemenizi, üye düzeyi yerine öneririz. Dayanıklılık ile daha uzun derleme sürelerine sahip daha büyük ikili dosyalar arasında bir denge olabileceğini unutmayın.
Eksik meta veri özel durumunu giderirken şu sorunları göz önünde bulundurun:
Uygulama özel durumdan önce ne yapmaya çalışıyordu?
- Örneğin, veri bağlama, verileri serileştirme veya seri durumdan çıkarma ya da doğrudan yansıma API'sini kullanma mıydı?
Bu yalıtılmış bir durum mu yoksa diğer türler için de aynı sorunla karşılaşabileceğinize inanıyor musunuz?
- Örneğin, uygulamanın nesne modelinde bir tür seri hale getirildiğinde MissingMetadataException özel durumu oluşturulur. Seri hale getirilecek diğer türleri biliyorsanız, bu türler veya kodun ne kadar iyi düzenlendiğine bağlı olarak, onları içeren ad alanları için çalışma zamanı yönergelerini aynı anda ekleyebilirsiniz.
Yansıma kullanmaması için kodu yeniden yazabilir misiniz?
Örneğin, hangi tür bekleyebileceğinizi bildiğinizde kod
dynamicanahtar sözcüğünü kullanıyor mu?Kod, daha iyi bir alternatif kullanılabilir olduğunda yansımaya bağlı olan bir yöntemi çağırır mı?
Uyarı
Yansıma farklılıkları ve masaüstü uygulamalarında meta verilerin kullanılabilirliği ile .NET Native kaynaklı sorunları ele alma hakkında ek bilgi için Yansıma Kullanımına Dayanan API'lere bakın.
Uygulamanızı test ederken oluşan özel durumları ve diğer sorunları işlemeye ilişkin bazı özel örnekler için bkz:
Örnek: Veri Bağlarken Özel Durumları İşleme
Örnek: Dinamik Programlama Sorunlarını Giderme
.NET Yerel Uygulamalarında Runtime Özel Durumları