Mencegah Paket Lama Menginstal Melalui Versi yang Lebih Baru

Windows paket peningkatan Alat Penginstal dapat ditulis untuk memiliki peningkatan besar yang tidak diinstal jika pengguna sudah menginstal versi yang lebih baru. Prosedur dalam topik ini hanya dapat mencegah penurunan tingkat yang mungkin disebabkan oleh menjalankan paket peningkatan utama. Prosedur ini bergantung pada Tindakan FindRelatedProducts, yang hanya berjalan selama penginstalan pertama kali dan tidak berjalan dalam mode pemeliharaan (penginstalan ulang). Karena peningkatan kecil dilakukan menggunakan penginstalan ulang, prosedur ini tidak dapat digunakan untuk menentukan apakah paket peningkatan kecil mencoba menurunkan tingkat aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan Aplikasi untuk Peningkatan Utama Di Masa Mendatang.

Untuk mencegah paket lama diinstal melalui versi yang lebih baru

  1. Masukkan Properti UpgradeCode untuk grup produk terkait yang mungkin memenuhi syarat untuk menerima peningkatan ini ke kolom UpgradeCode dari Tabel Peningkatan.

  2. Masukkan bendera bit msidbUpgradeAttributesOnlyDetect di kolom Atribut dari Tabel Peningkatan.

  3. Masukkan versi peningkatan yang disediakan oleh paket ini ke kolom VersionMin dari Tabel Peningkatan. Biarkan kolom VersionMax kosong.

  4. Masukkan nama properti yang akan diatur oleh Tindakan FindRelatedProducts ke dalam kolom ActionProperty dari Tabel Peningkatan.

  5. Tambahkan properti SecureCustomProperties dan properti bernama di kolom ActionProperty dari Tabel Peningkatan ke Tabel Properti.

  6. Tambahkan Tindakan Kustom Tipe 19 setelah tindakan FindRelatedProducts di Tabel InstallExecuteSequence. Sertakan rekaman dalam Tabel CustomAction untuk tindakan ini dan masukkan teks yang akan ditampilkan di kolom Target. Tindakan kustom tipe 19 dibangun ke dalam alat penginstal, sehingga tidak ada kode untuk ditulis.

  7. Masukkan nama ActionProperty ke dalam kolom Kondisi rekaman di Tabel InstallExecuteSequence yang berisi Tindakan Kustom Tipe 19. Kondisi ini tindakan kustom untuk hanya dijalankan ketika Tabel Peningkatan mendeteksi bahwa versi yang lebih baru sudah diinstal.

    Misalnya, paket Windows Installer yang meningkatkan sekelompok produk terkait ke versi 3.0 dapat mencakup catatan berikut dalam tabel Upgrade, CustomAction, InstallExecuteSequence, dan Property. Semua produk terkait dalam grup memiliki UpgradeCode yang sama, tetapi alat penginstal tidak menginstal paket peningkatan ini jika versi yang lebih baru dari 3.0 sudah diinstal pada komputer. Dalam hal ini, Alat Penginstal menyajikan pesan kesalahan dan penginstalan gagal. Paket peningkatan versi 3.0 diinstal melalui versi 1.0 dan 2.0.

    Mutakhirkan Tabel

    UpgradeCode VersionMin VersionMax Bahasa Atribut Hapus ActionProperty
    {E7BE6D45-49FF-4701-A17E-BDCC98CE180D} 3.0   msidbUpgradeAttributesOnlyDetect NEWPRODUCTFOUND
    {E7BE6D45-49FF-4701-A17E-BDCC98CE180D} 1,0 3.0 msidbUpgradeAttributesVersionMinInclusive UPGRADEFOUND

     

    Tabel CustomAction

    Tindakan Jenis Sumber Target
    CA1 19 Peningkatan yang lebih tinggi sudah diinstal.

     

    Tabel InstallExecuteSequence

    Tindakan Kondisi Urutan
    FindRelatedProducts 200
    CA1 NEWPRODUCTFOUND 201

     

    Tabel Properti

    Properti Nilai
    SecureCustomProperties NEWPRODUCTFOUND; UPGRADEFOUND