
BackgroundTaskBuilder ve “Class not registered” Hatası
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))
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;