ClickOnce güncelleştirme stratejisini seçme

ClickOnce otomatik uygulama güncelleştirmeleri sağlayabilir. ClickOnce uygulaması, uygulama güncelleştirmelerinin kullanılabilir olup olmadığını görmek için dağıtım bildirim dosyasını düzenli aralıklarla okur. Kullanılabilir olması durumunda uygulamanın yeni sürümü indirilir ve çalıştırılır. Verimlilik için, sadece değişen dosyalar indirilir.

ClickOnce uygulaması tasarlarken, uygulamanın kullanılabilir güncelleştirmeleri denetlemek için hangi stratejiyi kullanacağını belirlemeniz gerekir. Kullanabileceğiniz üç temel strateji vardır: Uygulama başlangıcında güncelleştirmeleri denetleme, uygulama başlangıcından sonra güncelleştirmeleri denetleme (Arka planda bir iş parçacığı çalıştırılır.) veya güncelleştirmeler için bir kullanıcı arayüzü sağlama.

Ayrıca, uygulama güncelleştirmelerinin ne sıklıkta denetleneceğini belirleyebilirsiniz ve gerekli güncelleştirmeleri yapabilirsiniz.

Not

Uygulama güncelleştirmeleri, ağ bağlantısı gerektirir. Ağ bağlantısı mevcut değilse, uygulama güncelleştirme stratejisi ne olursa olsun güncelleştirmeleri denetlemeden çalışacaktır.

Not

.NET Framework 2.0 ve .NET Framework 3.0'da, uygulamanız güncelleştirmeleri her denetlediğinde, başlatmadan önce veya sonra ya da xref:System.Deployment.Application> API'lerini kullanarak <dağıtım bildiriminde ayarlamanız deploymentProvider gerekir. öğesi, deploymentProvider Visual Studio'da Yayımla sekmesinin Güncelleştirmeler iletişim kutusundaki Konumu güncelleştir alanına karşılık gelir. Bu kural .NET Framework 3.5'te gevşetilir. Daha fazla bilgi için bkz . İstifa Etmeden Test ve Üretim Sunucuları için ClickOnce Uygulamalarını Dağıtma.

Uygulama başlangıcından sonra güncelleştirmeleri denetleme

Bu stratejiyi kullanarak, uygulama çalışırken, arka planda dağıtım dosyası bildiriminin yerini belirleyip okumayı deneyecektir. Bir güncelleştirme varsa, kullanıcı uygulamayı bir sonraki çalıştırışında güncelleştirmeyi indirmesi ve yüklemesi istenir.

Bu strateji en iyi uzun indirmelere ihtiyaç duyacak büyük uygulamalar için veya düşük bant genişliğine sahip ağ bağlantıları için çalışır.

Bu güncelleştirme stratejisini etkinleştirmek için, Uygulama Güncelleştirmeler iletişim kutusunun Güncelleştirmeleri ne zaman denetleyeceğini seçin bölümünde Uygulama başlatıldıktan sonra'ya tıklayın. Ardından uygulamanın güncelleştirmeleri ne sıklıkta denetlemesi gerektiğini belirtin bölümünde bir güncelleştirme aralığı belirtin.

Bu, dağıtım bildirimindeki Update öğesini aşağıdaki gibi değiştirmekle aynıdır:

<!-- When to check for updates -->
<subscription>
   <update>
      <expiration maximumAge="6" unit="hours" />
   </update>
</subscription>

Uygulama başlamadan önce güncelleştirmeleri denetleme

Varsayılan strateji, uygulama başlatılmadan önce dağıtım bildirimi dosyasının yerini belirleyip okumayı denemektir. Bu strateji kullanarak, kullanıcı uygulamayı her başlattığında, uygulama dağıtım bildirim dosyasının yerini belirleyip okumaya çalışacaktır. Bir güncelleştirme yoksa, uygulamanın mevcut sürümü başlatılır. Gerekli bir güncelleştirme varsa, indirilip başlatılır. Bir güncelleştirme varsa ancak gerekli değilse, kullanıcıya mevcut sürümü yükseltme veya başlatma seçeneği sunulur.

Bu strateji en iyi yüksek bant genişliğine sahip ağ bağlantıları için çalışır; uygulama başlatımındaki gecikme düşük bantlı bağlantılar için kabul edilemeyecek kadar uzun olabilir.

Bu güncelleştirme stratejisini etkinleştirmek için, Uygulama Güncelleştirmeler iletişim kutusunun Güncelleştirmeleri ne zaman denetleyeceğini seçin bölümünde Uygulama başlamadan önce'ye tıklayın.

Bu, dağıtım bildirimindeki Update öğesini aşağıdaki gibi değiştirmekle aynıdır:

<!-- When to check for updates -->
<subscription>
   <update>
      <beforeApplicationStartup />
   </update>
</subscription>

Not

.NET Core 3.1 ve .NET 5 ve daha yeni uygulamalar için güncelleştirmeleri uygulama başlamadan önce denetlemek desteklenen tek güncelleştirme seçeneğidir.

Güncelleştirmeleri gerekli hale getirme

Kullanıcıların uygulamanızın güncelleştirilmiş bir sürümünü çalıştırmasını istediğiniz durumlar olabilir. Örneğin, çalışan uygulamanızın daha eski bir sürümünün doğru olarak çalışmasını engelleyen bir Web hizmeti gibi harici bir kaynakta değişiklik yapabilirsiniz. Bu durumda, güncelleştirmenizi gerekli olarak işaretlemek ve kullanıcıların daha eski sürümleri çalıştırmasını engellemek isteyeceksinizdir.

Not

Diğer güncelleştirme stratejilerini kullanarak güncelleştirme gerektirebilmenize rağmen, uygulama başlamadan önce'yi denetlemek eski bir sürümün çalıştırılamayacağını garanti etmenin tek yoludur. Zorunlu güncelleştirme başlangıçta algılandığında, kullanıcının ya güncelleştirmeyi kabul etmesi ya da uygulamayı kapatması gerekir.

Bir güncelleştirmeyi gerekli olarak işaretlemek için, Uygulama Güncelleştirmeler iletişim kutusunda Bu uygulama için gereken en düşük sürümü belirtin'e tıklayın ve ardından yüklenebilen uygulamanın en düşük sürüm numarasını belirten yayımlama sürümünü (Birincil, İkincil, Derleme, Düzeltme) belirtin.

Bu, dağıtım bildirimindeki Deployment öğesinin minimumRequiredVersion özniteliğini ayarlamakla aynıdır; örneğin:

<deployment install="true" minimumRequiredVersion="1.0.0.0">

Güncelleştirme aralıklarını belirtme

Uygulamanın güncelleştirmeleri ne sıklıkta denetleyeceğini de belirtebilirsiniz. Bunu yapmak için, bu konuda "Uygulama Başlangıcından Sonra Güncelleştirmeleri Denetleme" bölümünde bahsedildiği gibi uygulamanın güncelleştirmeleri başlangıçtan sonra denetleyeceğini belirtin.

Güncelleştirme aralığını belirtmek için, Uygulama Güncelleştirmeler iletişim kutusunda Uygulamanın güncelleştirme özelliklerini ne sıklıkta denetlemesi gerektiğini belirtin.

Bu, dağıtım bildirimindeki Update öğesinin maximumAge ve birim özniteliklerini ayarlamakla aynıdır.

Örneğin, her zaman uygulama çalıştığında, haftada bir defa veya ayda bir defa denetlemek isteyebilirsiniz. Ağ bağlantısı belirtilen zamanda mevcut değilse, güncelleştirme denetimi uygulamanın sonraki açılışında gerçekleştirilir.

Not

.NET Core ve .NET 5 veya üzeri için ClickOnce'da bu özellik desteklenmez. Daha fazla bilgi için bkz . .NET için ClickOnce.

Güncelleştirmeler için kullanıcı arabirimi sağlama

Bu stratejiyi kullanırken, uygulama geliştiricisi kullanıcıya ne zaman veya ne sıklıkta uygulama güncelleştirmeleri denetlensin seçeneği imkanı veren bir kullanıcı arayüzü sağlar. Örneğin, "Güncelleştirmeleri Şimdi Denetle" komutu veya dört farklı güncelleştirme aralığı içeren bir "Güncelleştirme Ayarları" iletişim kutusu sağlayabilirsiniz. ClickOnce dağıtım API'leri kendi güncelleştirme kullanıcı arabiriminizi programlamak için bir çerçeve sağlar. Daha fazla bilgi için ad alanına System.Deployment.Application bakın.

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 kendi güncelleştirme mantığını denetlemek için dağıtım API'leri kullanıyorsa, aşağıdaki bölümde "Güncelleştirme Denetimini Engelleme"de anlatıldığı gibi güncelleştirme denetimini engellemelisiniz.

Bu strateji, en iyi farklı kullanıcılar için farklı güncelleştirme stratejileri gerektiğinde çalışır.

Güncelleştirme denetimini engelle

Uygulamanızın güncelleştirme yapmasını tamamen engellemeniz mümkündür. Örneğin, hiçbir zaman güncelleştirilmeyecek basit bir uygulamanız olabilir, ancak ClickOnce dağıtımı tarafından sunulan yükleme kolaylığından yararlanmak isteyebilirsiniz.

Ayrıca uygulamanızın kendi güncelleştirmelerini gerçekleştirmek için dağıtım API'leri kullanıp kullanmaması güncelleştirme denetimini engellemelisiniz; Bu konunun önceki bölümlerinde yer alan "Güncelleştirmeler için kullanıcı arabirimi sağlama" konusuna bakın.

Güncelleştirme denetimini engellemek için Uygulama Güncelleştirmeler İletişim Kutusu'ndaki Uygulama güncelleştirmeleri denetlemelidir onay kutusunu temizleyin.

Ayrıca, etiketi dağıtım bildiriminden kaldırarak <Subscription> güncelleştirme denetimini engelleyebilirsiniz.

İzin yükseltmesi ve güncelleştirmeleri

ClickOnce uygulamasının yeni bir sürümünün çalışması için önceki sürümden daha yüksek bir güven düzeyi gerekiyorsa, ClickOnce kullanıcıya sorar ve uygulamaya bu daha yüksek düzeyde güven verilmesini isteyip istemediğini sorar. Kullanıcı daha yüksek güven düzeyi vermeyi reddederse, güncelleştirme yüklenmez. ClickOnce, kullanıcıdan uygulamayı bir sonraki yeniden başlatıldığında yeniden yüklemesini ister. Bu noktada kullanıcı daha yüksek güven düzeyi verilmesini reddedip güncelleştirme gerekli değil şeklinde işaretlenirse, uygulamanın eski sürümü çalışacaktır. Ancak güncelleştirme gerekli ise, uygulama kullanıcı daha yüksek güven düzeyini kabul edene kadar çalışmaz.

Güvenilir Uygulama Dağıtımı kullanıyorsanız, güven düzeyleri için hiçbir uyarı ile karşılaşmazsınız. Daha fazla bilgi için bkz . Güvenilen uygulama dağıtımına genel bakış.