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.
İ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. .NET Native uygulaması oluşturmak için şu adımları izleyin:
Evrensel Windows Platformu (UWP) uygulaması geliştirin 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
1. Adım: UWP uygulamanızın hata ayıklama derlemelerini geliştirme ve test etme
İster yeni bir uygulama geliştiriyor ister mevcut bir uygulamayı geçiriyor olun, 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.
.NET Native araç zinciri kullanarak veya kullanmadan UWP uygulama projelerini derlemenin 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 ise .NET Native ön derleme teknolojisi kullanılarak derlenir. Uygulamanızın hata ayıklama yapılarını oluşturup test ederek, .NET Native araç zinciriyle derlemeden önce doğru çalıştıklarından emin olmalısınız.
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ştirirseniz, projenizin Projem klasöründe bulunur.
Uyarı
.NET Native derleme sürecinin neden bir çalışma zamanı yönergeleri dosyasına ihtiyaç duyduğuna dair arka plan bilgisine genel bakış için .NET Native ve Derlemebölümüne bakın.
Ç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, DataContractJsonSerializerve 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 serileştirme ve meta veri
"Microsoft Serializers" 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 Özellikler iletişim kutusunun Derleme çıkış yolu metin kutusunda belirtilen dizindeki ILC.out alt dizinine, Derleme sekmesi altında 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 hatalarını giderdiğinizde ve
4. Adım: Eksik meta verileri el ile çözme
Masaüstünde karşılaşmadığınız ve .NET Native ile karşılaşabileceğiniz en yaygın hata, bir çalışma zamanı özel durumu olan MissingMetadataException, MissingInteropDataExceptionveya MissingRuntimeArtifactException hatasıdı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ı yeniden dağıtıp test
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ından ve masaüstü uygulamalarında ve .NET Native'de meta verilerin kullanılabilirliğinden kaynaklanan sorunları işleme hakkında ek bilgi için bkz. YansımaKullanan API'ler.
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
Ayrıca bakınız
- Çalışma Zamanı Yönergeleri (rd.xml) Yapılandırma Dosyası Referansı
- .NET Yerel ve Derleme
- Yansıma ve .NET Native
- Yansıma Kullanan API'ler
- Serileştirme ve Meta Veri
- Windows 8.x Uygulamanızı .NET Native'a Geçirmeyi