ClickOnce'un büyük hayranı değilim. Konsepti beğendim, fakat spesifik uygulamayı değil.
Geçmişte bir uygulama güncelleme sistemi hazırladığım yol, tüm uygulama dosyalarını bir dosya dosyasına sıkıştırmak ve web sunucuma yerleştirmektir. İşleri kolaylaştırmak için konteyner dosyasının oluşturulmasını otomatikleştirdim. Web sunucusunda, şu anki sürümü ve kapsayıcının URL'sini listeleyen bir sürüm bilgisi dosyanız var: 1.0.0.0|http://www.example.com/path/to/container.file
. Sürüm bilgisi dosyasını ayrıştırmak için, yapılacak tüm uygulamaların dosya içeriği '|' boru karakterini kullanarak bölünmesidir. İlk dizi elemanı sürüm numarası olacak ve ikinci eleman konteyner dosya yolu olacaktır.
Başlangıçta ve her iki gün gibi düzenli aralıklarla (kullanıcının uygulamayı uzun bir süre çalışarak bırakması durumunda), uygulamada web sunucusundaki sürüm bilgisi dosyasını kontrol etmem gerekir. orada listelenen sürüm çalışan sürümünden sonra gelir. Bir güncelleme varsa, uygulama kullanıcıyı yönlendirir. Kullanıcı güncellemeyi istiyorsa, uygulama, kapsayıcıyı sürüm bilgisi dosyasında belirtilen URL'den indirir ve içeriği, uygulamanın yeni klasörün xxx.exe
olarak kaydedilmesine izin vermek için şu anda çalışan exe değerini xxx.exe.old
olarak yeniden adlandırarak uygulamanın klasörüne kaydeder. Daha sonra uygulama kendini yeniden başlatır ve yeni exe xxx.exe.old
'u siler.
Uygulamanızın yeni bir sürümünü yayınlamak istediğinizde, yapmanız gereken tek şey uygulamanızın sürüm numarasını arttırmak, sürüm bilgisi dosyasını yeni sürüm numarasıyla güncellemek ve güncellenmiş bir kapsayıcı dosyasını web'inize yüklemek sunucusu.
+1 geçmişte kendimi yapmış ve oldukça çekicidir. – davek