Memperbarui Rakitan

Informasi dalam topik ini mengidentifikasi panduan yang direkomendasikan untuk memperbarui rakitan menggunakan patch Pemasang Windows.

Penulis pembaruan assembly dapat menggunakan panduan berikut, yang berlaku untuk semua jenis rakitan:

  • Metode yang direkomendasikan untuk memperbarui assembly adalah mengubah nama perakitan yang kuat dalam tabel MsiAssemblyName. Versi rakitan baru dapat disediakan oleh komponen baru atau oleh komponen yang sama yang menyediakan versi lama.
  • Jika versi assembly baru disediakan oleh komponen yang sama, jangan ubah jenis assembly dari rakitan .NET Framework menjadi rakitan Win32 atau sebaliknya.
  • Jika semua aplikasi pada sistem harus menggunakan rakitan yang diperbarui, Anda harus menyebarkan perakitan kebijakan. Rakitan kebijakan dapat mengalihkan aplikasi pada sistem untuk menggunakan versi rakitan baru. Rakitan kebijakan harus disediakan dengan membuat komponen baru.
  • Windows Installer 3.0 atau yang lebih baru diperlukan untuk menghapus instalasi pembaruan rakitan. Untuk informasi selengkapnya, lihat Menghapus Patch.
  • Versi rakitan yang lebih baru harus berisi versi file yang sama atau lebih tinggi dari rakitan yang dirilis sebelumnya.
  • Windows Installer 3.0 dapat melayani .NET Framework dan rakitan Win32 dengan penggantian file lengkap atau dengan pembaruan delta yang lebih kecil. Untuk informasi selengkapnya, lihat Mengurangi Ukuran Patch.
  • Jika pembaruan Anda mengubah nama perakitan yang kuat, tabel MsiPatchOldAssemblyFile dan tabel MsiPatchOldAssemblyName diperlukan jika paket patch tidak memiliki tabel MsiPatchSequence . Tabel MsiPatchOldAssemblyFile dan tabel MsiPatchOldAssemblyName tidak diperlukan jika paket patch memiliki informasi urutan patch dalam tabel MsiPatchSequence.
  • Sebelum merilis patch baru, uji patch dengan menerapkannya dengan semua patch yang dirilis sebelumnya.

Memperbarui Rakitan Win32

Gunakan panduan berikut saat Anda memperbarui rakitan Win32:

  • Ubah nama kuat rakitan baru yang ditentukan dalam tabel MsiAssemblyName.
  • Jika Anda ingin aplikasi Anda selalu menggunakan versi baru assembly tanpa memengaruhi versi assembly yang digunakan oleh aplikasi lain pada sistem, gunakan komponen yang sama untuk berisi versi assembly baru yang Anda gunakan untuk versi assembly lama. Pertahankan ComponentId yang sama dalam tabel Komponen . Setelah aplikasi Anda di-patch, aplikasi hanya memegang referensi ke versi baru assembly. Versi lama assembly dapat tetap dengan versi baru di cache assembly global. Ini tidak memengaruhi aplikasi lain pada sistem yang menggunakan versi lama assembly. Ketika komponen yang sama digunakan untuk versi rakitan baru dan lama, pembaruan Anda dapat menjadi patch delta yang lebih kecil.
  • Jika versi baru assembly tidak kompatibel dengan semua sistem tempat Anda ingin menginstal aplikasi, Anda dapat menginstal versi rakitan baru dan lama sebagai rakitan berdampingan. Untuk menginstal kedua versi rakitan secara berdampingan, buat komponen baru untuk berisi versi rakitan baru. ComponentId dalam tabel Komponen untuk komponen baru harus berbeda dari ComponentId komponen dengan versi lama. Setelah aplikasi Anda di-patch, aplikasi menyimpan referensi ke kedua versi perakitan. Kemudian aplikasi dapat diarahkan ke versi rakitan yang kompatibel oleh manifes. Ketika komponen yang berbeda digunakan untuk versi rakitan baru dan lama, pembaruan Anda menggunakan penggantian file lengkap.

Memperbarui Rakitan .NET Framework

Gunakan panduan berikut saat Anda memperbarui rakitan .NET Framework.

  • Ubah nama kuat rakitan baru yang ditentukan dalam tabel MsiAssemblyName.

  • Jika Anda ingin aplikasi Anda selalu menggunakan versi baru perakitan tanpa memengaruhi versi rakitan yang digunakan oleh aplikasi lain pada sistem, ubah nama kuat rakitan baru yang ditentukan dalam tabel MsiAssemblyName, dan gunakan komponen yang sama untuk berisi versi rakitan baru yang Anda gunakan untuk versi rakitan lama. Pertahankan ComponentId yang sama dalam tabel Komponen . Setelah aplikasi Anda di-patch, aplikasi hanya memegang referensi ke versi baru assembly. Versi lama assembly dapat tetap dengan versi baru di cache global. Ini tidak memengaruhi aplikasi lain pada sistem yang menggunakan versi lama assembly. Ketika komponen yang sama digunakan untuk versi rakitan baru dan lama, pembaruan Anda dapat menjadi patch delta yang lebih kecil.

  • Jika versi baru assembly tidak kompatibel dengan semua sistem tempat Anda ingin menginstal aplikasi, Anda dapat menginstal versi rakitan baru dan lama sebagai rakitan berdampingan. Untuk menginstal kedua versi rakitan secara berdampingan, ubah nama kuat rakitan baru yang ditentukan dalam tabel MsiAssemblyName, dan buat komponen baru untuk berisi versi rakitan baru. ComponentId dalam tabel Komponen untuk komponen baru harus berbeda dari ComponentId komponen dengan versi lama. Setelah aplikasi Anda di-patch, aplikasi menyimpan referensi ke kedua versi perakitan. Aplikasi kemudian dapat diarahkan ke versi rakitan yang kompatibel oleh manifes. Ketika komponen yang berbeda digunakan untuk versi rakitan baru dan lama, pembaruan Anda menggunakan penggantian file lengkap.

  • Pembaruan di tempat menimpa salinan .NET Framework Assembly di cache assembly global. Jenis pembaruan perakitan ini tidak mengubah nama perakitan yang kuat. Hanya nilai di bidang FileVersion dari tabel MsiAssemblyName yang diubah. Pembaruan .NET Framework Assembly di tempat memerlukan .NET Framework 1.1 SP1 atau yang lebih tinggi.

    Catatan

    Jenis pembaruan di tempat menimpa salinan assembly di cache global, dan dapat merusak aplikasi lain jika versi baru assembly tidak sepenuhnya kompatibel mundur. Metode yang direkomendasikan untuk memperbarui assembly adalah mengubah nama perakitan yang kuat dalam tabel MsiAssemblyName.