LordHalim İlk olarak elinizde sunucu olması gerekiyor. Bu uzak bir bilgisayar veya bir hosting olabilir farketmez. Yeter ki erişim sağlayabilesiniz. Uygulamanız içine veya yanında bulunan(yanında bulunan bir exe önerilen metotur.) bir exe ile sunucudan sürüm kontrolü yapmanız gerekmektedir. Örnek vermek gerekirsem sunucunuzda şu dosyaların olduğunu varsayalım;
Sunucuda bulunan dosyalar (isimlerde değişiklik yapabilirsiniz, örnek olarak yazdım.)
versioninfo.txt -> içerisinde 1.0 yazdığını varsayalım.
new_exe.exe -> en son eklediğiniz uygulama dosyası olduğunu varsayalım.
downloadfile.txt -> güncellenen dosyaların isimlerinin olduğunu varsayalım.
- İlk olarak uygulamanızın sürümünü global bir değişken olarak programınıza tanıtmanız gerekmektedir.
- Bu versiyon bilgisini alarak sunucuda bulunan "versioninfo.txt" dosyasının içerisinde ki değer ile karşılaştırma yapacaksınız.
- Uygulama sürümünüz sunucuda bulunan versioninfo.txt değerinden düşük ise bu bir güncelleme olduğuna işaret eder.
- Sonrasında bir güncelleme olduğunu kullanıcıya belirtin, kabul etmesi durumunda uygulamamızın yanına eklemiş olduğumuz güncelleme aracı (örn: updater.exe) olan updater.exe uygulamasını çalıştırın.
- Bu uygulama şunları gerçekleştirecek: İlk olarak downloadfile.txt dosyasını okuyup kaç indirmeniz gereken dosya varsa bir diziye/listeye aktaracak ve ilk satırdan başlayarak indirmeye başlayacak.
string indirilecek_dosyalistesi = downloadfile.txt;
string[] dosyalistesi = (string[])indirilecek_dosyalistesi.ToArray(typeof(string));
"https://siteadresim.com/update/" + dosyalistesi[0]";
şeklinde bir algoritma ile tek tek dosyalar indirilir ve yerel klasörde güncellenir. Yeni uygulamamızda global olarak belirlediğimiz değişkenimizde güncellendiği için sunucu kontrolünde artık güncellenecek bir sürümün olmadığı belirtilecek.
Bu şekilde bir indirme algoritması ile istediğiniz gibi mekanizma oluşturabilirsiniz. Benim verdiğim bir tek örnek. Bu işlemi veritabanı, JSON veya daha farklı metotlar ile yapabilirsiniz.
Bazı işinize yarayacak kaynaklar:
C# executable dosya indirme
C# ile uygulama güncelleme kontrolü
Yukarıda bahsi geçen kod tanımlamalar C# syntax'ı referans alınmıştır. URL yapısı örnek verilmiştir herhangi bir dilin syntax'ı referans alınmamıştır.
Sorunuz olursa biz buradayız 🙂
İyi çalışmalar.