ClickOnce uygulama güncelleştirmelerini nasıl gerçekleştirir
ClickOnce, uygulamanın dosyalarının güncelleştirilip güncelleştirilmeyeceğine karar vermek için uygulamanın dağıtım bildiriminde belirtilen dosya sürümü bilgilerini kullanır. Bir güncelleştirme başladıktan sonra ClickOnce, uygulama dosyalarının yedekli olarak indirilmesini önlemek için dosya düzeltme eki uygulama adlı bir teknik kullanır.
Dosya düzeltme eki uygulama
Bir uygulamayı güncelleştirirken ClickOnce, dosyalar değişmediği sürece uygulamanın yeni sürümü için tüm dosyaları indirmez. Bunun yerine, geçerli uygulama için uygulama bildiriminde belirtilen dosyaların karma imzalarını yeni sürüm için bildirimdeki imzalarla karşılaştırır. Bir dosyanın imzaları farklıysa ClickOnce yeni sürümü indirir. İmzalar eşleşiyorsa, dosya bir sürümden diğerine değişmemiştir. Bu durumda ClickOnce mevcut dosyayı kopyalar ve uygulamanın yeni sürümünde kullanır. Bu yaklaşım, yalnızca bir veya iki dosya değişmiş olsa bile ClickOnce'un uygulamanın tamamını yeniden indirmesini önler.
Dosya düzeltme eki uygulama, ve DownloadFileGroupAsync yöntemleri kullanılarak DownloadFileGroup isteğe bağlı olarak indirilen derlemeler için de çalışır.
Not
ApplicationDeployment Ad alanı içindeki System.Deployment.Application sınıf ve API'ler .NET Core ve .NET 5 ve sonraki sürümlerde desteklenmez. .NET 7'de, uygulama dağıtım özelliklerine erişmek için yeni bir yöntem desteklenir. Daha fazla bilgi için bkz . .NET'te ClickOnce dağıtım özelliklerine erişme. .NET 7, ApplicationDeployment yöntemlerinin eşdeğerini desteklemez.
Uygulamanızı derlemek için Visual Studio kullanırsanız, projenin tamamını yeniden derlediğinizde tüm dosyalar için yeni karma imzalar oluşturur. Bu durumda, yalnızca birkaç derleme değişmiş olsa da tüm derlemeler istemciye indirilir.
Dosya düzeltme eki uygulama, veri olarak işaretlenen ve veri dizininde depolanan dosyalar için çalışmaz. Bunlar her zaman dosyanın karma imzası ne olursa olsun indirilir. Veri dizini hakkında daha fazla bilgi için bkz . ClickOnce uygulamalarında yerel ve uzak verilere erişme.