BackgroundTaskBuilder ve “Class not registered” Hatası

exception

   Ok, Windows 8’de ilk arka plan görevinizi oluşturdunuz ve Visual Studio’da F5 tuşuna basarak bir debug oturumu başlattınız. Uygulamanız normal şekilde çalıştı… ta ki arka plan görevinizin sisteme kaydını yapana kadar…  Ne zaman ki BackgroundTaskBuilder sınıfının Register metodunu çalıştırdınız, aşağıdaki hata size merhaba dedi;

Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

BackgroundTaskBuilder sınıfının Register metodunu çalıştırıldığında alınan "Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))" hatası

 

   Herşey çok güzel giderken bu hata da nerden çıktı diye düşüneceksinizdir, eminim… Bu hatanın temelinde aslında Windows 8’in basit bir güvenlik önlemi yer almakta; Package.appxmanifest içerisinde belirtmediğiniz bir görev için kayıt işlemi yapmaya çalıştınız…

   Hatırlarsanız arka plan görevlerinde ilk bahsettiğimde manifest dosyası içerisinde tüm görevlerinizi belirtmeniz gerektiğinde bahsetmiştim. Buradaki mantık aslında oldukça basit; kodunuz içerisinde yaptığınız işlemler hakkında temel düzeyde bilgi sunmak. Sunduğunuz bu bilgi uygun bir formatta son kullanıcıya iletilecektir (tabi anlayabilecekleri ifadelerle 🙂 ). Dolayısıyla bu kurguya aykırı hareket edilmediğinin garanti altına alınmasının en kolay yolu tanımı bulunmayan arka plan görev kayıt işlemlerinde yukarıdaki gibi hata fırlatmak.

  Doğal olarak bu hatayı almamak için Package.appxmanifest dosyasına ilgili arka plan görev kaydını tanımlamalısınız. Visual Studio içerisinde Package.appxmanifest dosyasını açtığınızda Declarations segmesine geçerek Avaliable Declarations bölümünden Backround Tasks seçerek Add butonuna basın. Gelen bölüm içerisinde arka plan görevinize ait bilgileri vermeniz yeterli olacaktır;

Package.appxmanifest içerisinde arka plan görev tanımı verilmeli

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# konusundan Microsoft tarafından dört yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz.
vCard - Twitter - Facebook - Google+

1 Yorum

  1. Pingback: Mennan Köse (@mennankose)

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir