Bagikan melalui


Menghapus Patch

Dimulai dengan Windows Installer versi 3.0, dimungkinkan untuk membuat dan menginstal patch yang dapat dihapus secara menyeluruh, dan dalam urutan apa pun, tanpa harus menghapus instalan dan menginstal ulang seluruh aplikasi dan patch lainnya. Pemasang Windows 3.0 juga memungkinkan Paket Patch ditulis dengan Tabel MsiPatchSequence yang berisi informasi urutan patch. Dengan versi Pemasang Windows yang lebih lama dari Windows Installer 3.0, satu-satunya metode untuk menghapus patch tertentu dari aplikasi adalah dengan menghapus seluruh aplikasi yang di-patch dan kemudian menginstal ulang tanpa menerapkan kembali patch apa pun yang dihapus.

Apakah patch dapat dihapus instalannya tergantung pada bagaimana patch ditulis, versi Pemasang Windows yang digunakan untuk menginstal patch, dan perubahan yang dibuat oleh patch ke aplikasi. Jika patch tidak dapat dihapus, maka satu-satunya cara untuk menghapus patch adalah dengan menghapus seluruh aplikasi dan menginstal ulang tanpa menerapkan patch yang dihapus.

Anda dapat menghapus satu atau beberapa patch menggunakan opsi baris perintah, antarmuka skrip, atau dengan memanggil MsiRemovePatches dari aplikasi lain. Lihat Menghapus instalan Patch untuk informasi selengkapnya tentang cara menghapus patch.

Nilai properti MSIPATCHREMOVE mencantumkan patch yang akan dihapus instalasinya. Untuk setiap patch dalam daftar, alat penginstal memverifikasi bahwa patch tidak dapat diinstal. Jika pengguna tidak memiliki hak istimewa untuk menghapus patch, patch tidak diketahui untuk produk, kebijakan patch mencegah penghapusan, atau patch ditandai sebagai tidak dapat dihapus, alat penginstal mengembalikan kesalahan yang menunjukkan transaksi penginstalan yang gagal. Lihat Patch yang dapat dibongkar untuk informasi selengkapnya tentang apa yang menentukan apakah patch tidak dapat dibongkar.

Setelah patch diverifikasi sebagai dapat dilepas, alat penginstal menghapus patch dari urutan aplikasi patch. Untuk informasi selengkapnya tentang bagaimana Penginstal Windows 3.0 menentukan urutan apa yang akan digunakan saat menerapkan patch, lihat Mengurutkan Patch. Perhatikan bahwa menghapus patch dari urutan dapat menyebabkan patch yang ditandai usang atau diganti menjadi aktif.

Semua patch yang dipilih untuk penghapusan tercantum dalam properti MsiPatchRemovalList . Properti ini adalah properti privat yang diatur oleh alat penginstal dan dapat digunakan dalam ekspresi kondisi atau dikueri oleh tindakan kustom. Properti berisi daftar GUID kode patch patch patch yang akan dihapus. Tindakan kustom dapat menentukan apakah status penginstalan patch diterapkan, usang, atau digantikan dengan memanggil MsiGetPatchInfoEx atau properti PatchProperty dari Objek Patch.

Setelah patch dihapus, status aplikasi sama seperti jika patch tidak pernah diinstal. Jika memungkinkan, alat penginstal membatasi proses ke subset fitur yang terpengaruh oleh patch yang dihapus. Alat penginstal secara otomatis mengatur properti INSTAL ULANG ke daftar fitur yang terpengaruh. File yang ditambahkan oleh patch dihapus dan file yang dimodifikasi oleh patch ditimpa. File dan entri registri dipulihkan ke versi yang diharapkan oleh produk dikurangi patch. Fitur dan komponen yang ditambahkan oleh patch tidak terdaftar dari aplikasi. Perhatikan bahwa konten tambahan yang ditambahkan oleh patch dapat tetap ada di komputer pengguna jika konten digunakan oleh patch lain yang masih berlaku.

Jika file komponen bersama diperbarui oleh patch, perubahan akan memengaruhi semua aplikasi yang berbagi komponen. Ketika patch dihapus, sekali lagi, perubahan mempengaruhi semua aplikasi yang berbagi komponen. Ini berarti bahwa penghapusan patch oleh satu aplikasi dapat memulihkan file komponen bersama ke versi yang lebih rendah daripada yang diperlukan oleh aplikasi lain. Ini dapat memperbaiki aplikasi pertama, tetapi menyebabkan aplikasi kedua berhenti berfungsi. Dalam hal ini, aplikasi kedua dapat diperbaiki dengan menginstal ulang aplikasi kedua menggunakan metode yang dijelaskan dalam Menginstal Ulang Fitur atau Aplikasi. Ini akan memulihkan versi file yang di-patch.

MsiEnumapplicationsEx

MsiGetPatchInfoEx

MSIPATCHREMOVE

MsiRemovePatches

Urutan Patch

Mencopot Pemasangan Tindakan Kustom

Patch yang tidak dapat diinstall

Menghapus Instalan Patch