Bagikan melalui


Validasi String-Pool

Pemasang Windows menyimpan semua string database dalam satu kumpulan string bersama untuk mengurangi ukuran database dan untuk meningkatkan performa. Satu-satunya cara untuk memvalidasi kumpulan string adalah dengan menggunakan alat MsiInfo yang ditemukan di Windows Installer SDK.

Verifikasi kumpulan string terdiri dari dua pemeriksaan utama:

Pengujian String DBCS

Uji string DBCS memindai setiap string dalam database untuk dua kriteria: Untuk paket dengan halaman kode netral yang ditandai, jika ada karakter yang diperluas (lebih dari 127), string ditandai dan pesan ditampilkan yang mengatakan bahwa halaman kode database tidak valid karena karakter ini memerlukan halaman kode tertentu untuk dirender secara konsisten pada semua sistem.

Jika database memiliki halaman kode, setiap string dipindai untuk indikator DBCS yang tidak valid. Jika string non-netral ditandai dengan tidak benar, karakter tidak akan dirender dengan benar. (Ini paling umum disebabkan oleh memaksa halaman kode ke nilai tertentu menggunakan tabel _ForceCodepage dengan string non-netral yang sudah ada di database.) Perhatikan bahwa pemeriksaan ini mengharuskan halaman kode database diinstal pada sistem.

Jika ada masalah halaman kode, pengguna dapat memperbaiki kesalahan dengan menggunakan tabel _ForceCodepage untuk memaksa halaman kode database ke nilai yang sesuai. Untuk informasi selengkapnya, lihat Penanganan Halaman Kode.

Verifikasi Jumlah Referensi

Untuk memverifikasi jumlah referensi semua string, setiap tabel dipindai untuk nilai string, hitungan setiap string yang berbeda disimpan, dan hasilnya dibandingkan dengan jumlah referensi yang disimpan di kumpulan string database.

Jika ada masalah jumlah referensi string, pengguna harus segera mengekspor setiap tabel database menggunakan MsiDatabaseExport, membuat database baru, dan mengimpor tabel ke database baru menggunakan MsiDatabaseImport. Database baru kemudian memiliki konten yang sama dengan database lama, tetapi jumlah referensi string sudah benar. Menambahkan atau menghapus data dari database dengan kumpulan string yang rusak dapat meningkatkan kerusakan database dan kehilangan data, jadi mengambil langkah-langkah ini dengan cepat penting untuk mencegah kehilangan data lebih lanjut.

Saat membangun ulang database, ingatlah untuk menyematkan penyimpanan dan aliran yang diperlukan di database baru (lihat tabel _Streams dan tabel _Storages) dan mengetahui masalah halaman kode. Ingat juga untuk mengatur setiap properti Aliran Informasi Ringkasan yang diperlukan.