Kısa Sınav - 3 yazımda belirttiğim gibi, ClickOnce ile deploy ettiğiniz uygulamalarda, güncellemeleri programatik olarak kontrol etmek için ApplicationDeployment class’ını kullanırız.
Bu yazımda, ApplicationDeployment class’ının kullanımını anlatmaya çalışacağım.
Öncelikle bilinmesi gereken, ApplicationDeployment class’ından yeni bir instance oluşturamazsınız. Çünkü public bir constructor’ı yoktur.
ApplicationDeployment class’ından yeni bir örnek oluşturmak için, gene ApplicationDeployment class’ının static ve singleton CurrentDeployment property’sini kullanırız.
Artık elimizde bir değişken olduğuna göre, bu değişkeni kullanarak uygulamamızda güncelleme olup-olmadığını sorgulayabiliriz.
Bunun için kullanabileceğimiz fonksiyonlar;
CheckForUpdate()
Uygulamanın yeni versiyonu olup-olmadığını kontrol eder, geriye bool tipinde değer döner.
CheckForUpdateAsync()
CheckForUpdate() fonksiyonu ile aynı işi yapar, fakat asenkron çalışabilir.
Versiyon kontrolü tamamlandığında CheckForUpdateCompleted event’i otomatik olarak çağırılır.
CheckForDetailedUpdate()
Uygulamanın yeni versiyonu olup-olmadığını kontrol eder, geriye UpdateCheckInfo tipinde değer döner.
Genelde CheckForDetailedUpdate() fonksiyonunu çağırmakta fayda vardır. Çünkü, daha güncel versiyonun çıktığını bulduğumuzda, kullanıcıya mesaj vermek isteyeceğiz. Mesaja yazacağımız detaylı bilgiye UpdateCheckInfo class’ı aracılığıyla ulaşabiliriz. Bu bilgiyi bize CheckForDetailedUpdate() fonksiyonu döndürüyor.
UpdateCheckInfo class’ının member’ları;
AvailableVersion
Uygulamanın güncellenebilir son versiyonunun versiyon bilgisi. (Version tipinde değer döner)
IsUpdateRequired
Uygulamanın ClickOnce ile deploy’u sırasında “UpdateRequired” seçeneğinin seçilip seçilmediğinin bilgisi. (bool tipinde değer döner) Eğer true değer içeriyorsa, kullanıcıya mesaj verilmeli, çalışan uygulaman kapatılmalı ve güncelleme yapılmalıdır.
MinimumRequiredVersion
Kullanıcıda bulunması gerekli minimum versiyon bilgisi. (Version tipinde değer döner)
UpdateAvailable
Kullanıcıda çalışan uygulamadan daha güncel bir versiyonun bulunup bulunmadığı bilgisi. (bool tipinde değer döner)
UpdateSizeBytes
Güncellenecek dosyaların toplam boyutu bilgisi. (long tipinde değer döner)
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484