Memilih strategi pembaruan ClickOnce

ClickOnce dapat menyediakan pembaruan aplikasi otomatis. Aplikasi ClickOnce secara berkala membaca file manifes penyebarannya untuk melihat apakah pembaruan untuk aplikasi tersedia. Jika tersedia, versi baru aplikasi diunduh dan dijalankan. Untuk efisiensi, hanya file yang telah berubah yang diunduh.

Saat merancang aplikasi ClickOnce, Anda harus menentukan strategi mana yang akan digunakan aplikasi untuk memeriksa pembaruan yang tersedia. Ada tiga strategi dasar yang dapat Anda gunakan: memeriksa pembaruan pada pengaktifan aplikasi, memeriksa pembaruan setelah pengaktifan aplikasi (berjalan di utas latar belakang), atau menyediakan antarmuka pengguna untuk pembaruan.

Selain itu, Anda dapat menentukan seberapa sering aplikasi akan memeriksa pembaruan, dan Anda dapat membuat pembaruan diperlukan.

Catatan

Pembaruan aplikasi memerlukan konektivitas jaringan. Jika koneksi jaringan tidak ada, aplikasi akan berjalan tanpa memeriksa pembaruan, terlepas dari strategi pembaruan yang Anda pilih.

Catatan

Dalam .NET Framework 2.0 dan .NET Framework 3.0, setiap kali aplikasi Anda memeriksa pembaruan, sebelum atau setelah startup, atau dengan menggunakan <API xref:System.Deployment.Application>, Anda harus mengatur deploymentProvider dalam manifes penyebaran. Elemen deploymentProvider terkait dalam Visual Studio ke bidang Perbarui lokasi pada kotak dialog Pembaruan pada tab Terbitkan. Aturan ini dilonggarkan dalam .NET Framework 3,5. Untuk informasi selengkapnya, lihat Menyebarkan Aplikasi ClickOnce Untuk Pengujian dan Server Produksi tanpa Mengundurkan Diri.

Periksa pembaruan setelah pengaktifan aplikasi

Dengan menggunakan strategi ini, aplikasi akan mencoba menemukan dan membaca file manifes penyebaran di latar belakang saat aplikasi sedang berjalan. Jika pembaruan tersedia, lain kali pengguna menjalankan aplikasi, dia akan diminta untuk mengunduh dan menginstal pembaruan.

Strategi ini berfungsi paling baik untuk koneksi jaringan bandwidth rendah atau untuk aplikasi yang lebih besar yang mungkin memerlukan pengunduhan panjang.

Untuk mengaktifkan strategi pembaruan ini, klik Setelah aplikasi dimulai di bagian Pilih kapan aplikasi harus memeriksa pembaruan dari kotak dialog Pembaruan Aplikasi. Kemudian tentukan interval pembaruan di bagian Tentukan seberapa sering aplikasi harus memeriksa pembaruan.

Ini sama dengan mengubah elemen Pembaruan dalam manifes penyebaran sebagai berikut:

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

Periksa pembaruan sebelum pengaktifan aplikasi

Strategi default adalah mencoba menemukan dan membaca file manifes penyebaran sebelum aplikasi dimulai. Dengan menggunakan strategi ini, aplikasi akan mencoba menemukan dan membaca file manifes penyebaran setiap kali pengguna memulai aplikasi. Jika pembaruan tidak tersedia, versi aplikasi yang ada akan dimulai. Jika pembaruan yang diperlukan tersedia, pembaruan akan diunduh dan dimulai. Jika pembaruan tersedia tetapi tidak diperlukan, pengguna diberi pilihan apakah akan meningkatkan atau memulai versi yang ada.

Strategi ini berfungsi paling baik untuk koneksi jaringan bandwidth tinggi; penundaan dalam memulai aplikasi mungkin tidak dapat diterima lama melalui koneksi bandwidth rendah.

Untuk mengaktifkan strategi pembaruan ini, klik Sebelum aplikasi dimulai di bagian Pilih kapan aplikasi harus memeriksa pembaruan dari kotak dialog Pembaruan Aplikasi.

Ini sama dengan mengubah elemen Pembaruan dalam manifes penyebaran sebagai berikut:

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

Catatan

Untuk aplikasi .NET Core 3.1 dan .NET 5 dan yang lebih baru, memeriksa pembaruan sebelum aplikasi dimulai adalah satu-satunya opsi pembaruan yang didukung.

Diperlukan pembaruan

Mungkin ada kesempatan ketika Anda ingin mengharuskan pengguna untuk menjalankan versi terbaru aplikasi Anda. Misalnya, Anda dapat membuat perubahan pada sumber daya eksternal seperti layanan Web yang akan mencegah versi aplikasi Anda yang lebih lama berfungsi dengan benar. Dalam hal ini, Anda ingin menandai pembaruan sesuai kebutuhan dan mencegah pengguna menjalankan versi sebelumnya.

Catatan

Meskipun Anda dapat memerlukan pembaruan dengan menggunakan strategi pembaruan lainnya, memeriksa Sebelum aplikasi dimulai adalah satu-satunya cara untuk menjamin bahwa versi yang lebih lama tidak dapat dijalankan. Ketika pembaruan wajib terdeteksi saat startup, pengguna harus menerima pembaruan atau menutup aplikasi.

Untuk menandai pembaruan sesuai kebutuhan, klik Tentukan versi minimum yang diperlukan untuk aplikasi ini dalam kotak dialog Pembaruan Aplikasi, lalu tentukan versi penerbitan (Mayor, Minor, Build, Revisi), yang menentukan nomor versi terendah dari aplikasi yang dapat diinstal.

Ini sama dengan mengatur atribut minimumRequiredVersion dari elemen Penyebaran dalam manifes penyebaran; misalnya:

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

Tentukan interval pembaruan

Anda juga dapat menentukan seberapa sering aplikasi memeriksa pembaruan. Untuk melakukan ini, tentukan bahwa aplikasi memeriksa pembaruan setelah startup seperti yang dijelaskan dalam "Memeriksa Pembaruan Setelah Startup Aplikasi" sebelumnya dalam topik ini.

Untuk menentukan interval pembaruan, atur kotak dialog Tentukan seberapa sering aplikasi harus memeriksa properti pembaruan dalam kotak dialog Pembaruan Aplikasi.

Ini sama dengan mengatur atribut maximumAge dan unit elemen Update dalam manifes penyebaran.

Misalnya, Anda mungkin ingin memeriksa setiap kali aplikasi berjalan, atau satu kali seminggu, atau satu kali sebulan. Jika koneksi jaringan tidak ada pada waktu yang ditentukan, pemeriksaan pembaruan dilakukan lain kali aplikasi berjalan.

Catatan

Di ClickOnce untuk .NET Core dan .NET 5 atau yang lebih baru, fitur ini tidak didukung. Untuk informasi selengkapnya, lihat ClickOnce untuk .NET.

Menyediakan antarmuka pengguna untuk pembaruan

Saat menggunakan strategi ini, pengembang aplikasi menyediakan antarmuka pengguna yang memungkinkan pengguna untuk memilih kapan atau seberapa sering aplikasi akan memeriksa pembaruan. Misalnya, Anda mungkin memberikan perintah "Periksa Pembaruan Sekarang", atau kotak dialog "Perbarui Pengaturan" yang memiliki pilihan untuk interval pembaruan yang berbeda. API penyebaran ClickOnce menyediakan kerangka kerja untuk memprogram antarmuka pengguna pembaruan Anda sendiri. Untuk informasi lebih lanjut, lihat namespace layanan System.Deployment.Application.

Catatan

Kelas ApplicationDeployment dan API di System.Deployment.Application namespace tidak didukung dalam .NET Core dan .NET 5 dan versi yang lebih baru. Di .NET 7, metode baru untuk mengakses properti penyebaran aplikasi didukung. Untuk informasi selengkapnya, lihat Properti penyebaran Access ClickOnce di .NET. .NET 7 tidak mendukung metode ApplicationDeployment yang setara.

Jika aplikasi Anda menggunakan API penyebaran untuk mengontrol logika pembaruannya sendiri, Anda harus memblokir pemeriksaan pembaruan seperti yang dijelaskan dalam "Memblokir Pemeriksaan Pembaruan" di bagian berikut.

Strategi ini berfungsi paling baik ketika Anda membutuhkan strategi pembaruan yang berbeda untuk pengguna yang berbeda.

Memblokir pemeriksaan pembaruan

Dimungkinkan juga untuk mencegah aplikasi Anda memeriksa pembaruan. Misalnya, Anda mungkin memiliki aplikasi sederhana yang tidak akan pernah diperbarui, tetapi Anda ingin memanfaatkan kemudahan penginstalan yang disediakan oleh penyebaran ClickOnce.

Anda juga harus memblokir pemeriksaan pembaruan jika aplikasi Anda menggunakan API penyebaran untuk melakukan pembaruannya sendiri; lihat "Sediakan antarmuka pengguna untuk pembaruan" sebelumnya dalam topik ini.

Untuk memblokir pemeriksaan pembaruan, kosongkan kotak centang Aplikasi harus mencentang pembaruan di Kotak Dialog Pembaruan Aplikasi.

Anda juga dapat memblokir pemeriksaan pembaruan dengan menghapus tag <Subscription> dari manifes penyebaran.

Elevasi dan pembaruan izin

Jika versi baru aplikasi ClickOnce memerlukan tingkat kepercayaan yang lebih tinggi untuk berjalan daripada versi sebelumnya, ClickOnce akan meminta pengguna, bertanya kepadanya apakah ia ingin aplikasi diberikan tingkat kepercayaan yang lebih tinggi ini. Jika pengguna menolak untuk memberikan tingkat kepercayaan yang lebih tinggi, pembaruan tidak akan diinstal. ClickOnce akan meminta pengguna untuk menginstal aplikasi lagi ketika berikutnya dimulai ulang. Jika pengguna menolak untuk memberikan tingkat kepercayaan yang lebih tinggi pada saat ini, dan pembaruan tidak ditandai sebagaimana diperlukan, versi lama aplikasi akan berjalan. Namun, jika pembaruan diperlukan, aplikasi tidak akan berjalan lagi sampai pengguna menerima tingkat kepercayaan yang lebih tinggi.

Tidak ada permintaan untuk tingkat kepercayaan yang akan terjadi jika Anda menggunakan Penyebaran Aplikasi Tepercaya. Untuk informasi selengkapnya, lihat Ringkasan penyebaran aplikasi tepercaya.