Bagikan melalui


Praktik Terbaik Penginstal Windows

Bagian ini menghitung daftar tips, yang ditautkan ke dokumentasi Windows Installer SDK utama, untuk membantu Pengembang Aplikasi, Penulis Penyiapan, Profesional TI, dan Pengembang Infrastruktur menemukan praktik terbaik untuk menggunakan Penginstal Windows:

Perbarui versi Penginstal Windows.

  • Gunakan Windows Installer 5.0 di Windows Server 2008 R2 dan Windows 7. Ini adalah versi Penginstal Windows yang disediakan dengan sistem operasi.
  • Gunakan Penginstal Windows 4.5 di Windows Server 2008, Windows Server 2003 dengan Paket Layanan 1 (SP1), Windows Vista dengan Paket Layanan 1 (SP1), atau Windows XP dengan Paket Layanan 2 (SP2). Untuk informasi tentang mendapatkan versi Penginstal Windows terbaru, lihat Windows Installer Redistributables.
  • Gunakan Windows Installer 3.1 pada Windows 2000 dengan Paket Layanan 3 (SP3). Windows Installer versi 3.1 memiliki fitur yang memfasilitasi layanan dan patching aplikasi yang lebih baik.
  • Banyak fitur penting diperkenalkan dengan versi 3.0 dan tercantum di bagian Tidak Didukung di Penginstal Windows Versi 2.0. Paket penginstalan dan pembaruan yang dibuat untuk Windows Installer 2.0 dapat diinstal menggunakan Windows Installer 3.0 dan yang lebih baru. Paket patch yang berisi tabel baru yang digunakan oleh Windows Installer 3.0 masih dapat diterapkan menggunakan versi Windows Installer sebelumnya tetapi tanpa fungsionalitas patching Windows Installer 3.0. Dimungkinkan juga untuk menulis patch yang secara eksplisit memerlukan Windows Installer 3.0 yang tidak dapat diterapkan oleh versi Windows Installer sebelumnya. Jika pengguna tidak dapat memperbarui versi penginstal, pastikan bahwa aplikasi atau pembaruan Anda akan kompatibel dengan pembaruan Windows Installer di masa mendatang.
  • Untuk daftar fitur Penginstal Windows yang tidak didukung oleh versi penginstal Windows sebelumnya, lihat Apa yang Baru dalam Penginstal Windows.

Memenuhi persyaratan sertifikasi Logo Windows.

  • Bahkan jika Anda tidak berniat untuk mengirimkan aplikasi Anda ke program logo, mengikuti panduan sertifikasi logo dapat membantu membuat paket Windows Installer Anda lebih baik. Untuk gambaran umum persyaratan logo, dan tautan ke program sertifikasi logo tertentu, lihat Windows Installer dan Persyaratan Logo.

Siapkan paket untuk pelokalan.

  • Ini adalah praktik yang baik untuk mempersiapkan pelokalan di masa depan saat menulis paket penginstalan asli. Anda dapat mengikuti prosedur pelokalan paket yang disarankan dalam Melokalkan Paket Penginstal Windows.

Perbarui alat dan dokumentasi pengembangan Penginstal Windows Anda.

  • Alat Pengembangan Penginstal Windows tidak dapat didistribusikan ulang, dan Anda hanya boleh menggunakan versi alat ini yang tersedia dari Microsoft. Ini tersedia di Komponen Windows SDK untuk Pengembang Penginstal Windows di Kit Pengembangan Perangkat Lunak (SDK) Microsoft Windows.
  • Beberapa vendor perangkat lunak independen menawarkan alat untuk membuat atau memodifikasi paket Windows Installer. Alat-alat ini dapat menyediakan lingkungan penulisan paket yang mungkin lebih mudah digunakan daripada alat yang disediakan di Windows Installer SDK. Anda dapat mempelajari selengkapnya tentang alat ini dari sumber daya informasi yang dibahas di Sumber Informasi Penginstal Windows Lainnya.
  • Kemampuan untuk membangun paket dari file teks mungkin lebih intuitif bagi beberapa pengembang. Toolset WINDOWS Installer XML (WiX) yang tersedia di Sourceforge.net membangun paket penginstalan Windows dari kode sumber XML.
  • Dokumentasi di Windows Installer SDK paling sering diperbarui.
  • Gunakan versi terbaru Msizap.exe (versi 3.1.4000.2726 atau lebih tinggi) yang tersedia di Komponen Windows SDK untuk Pengembang Penginstal Windows untuk Windows Vista atau yang lebih tinggi. Versi Msizap.exe yang lebih rendah dapat menghapus informasi tentang semua pembaruan yang telah diterapkan ke aplikasi lain di komputer pengguna. Jika informasi ini dihapus, aplikasi lain ini mungkin perlu dihapus dan diinstal ulang untuk menerima pembaruan tambahan.
  • Editor tabel database Orca.exe adalah editor tabel database untuk membuat dan mengedit paket Penginstal Windows dan menggabungkan modul. Ini memiliki antarmuka GUI dasar tetapi mendukung pengeditan lanjutan database Penginstal Windows. Bahkan jika Anda menggunakan aplikasi lain sebagai alat pengembangan utama, Anda mungkin menemukan penggunaan Orca.exe nyaman saat memecahkan masalah dan menguji paket.
  • Lihat Sumber Informasi Penginstal Windows Lainnya untuk informasi Penginstal Windows saat ini yang tersedia di blog, obrolan teknis, grup berita, artikel teknis, dan situs web.

Jika Anda memutuskan untuk mengemas ulang aplikasi penyiapan warisan, ikuti praktik pengemasan ulang yang baik.

Banyak vendor aplikasi menyediakan paket Windows Installer asli untuk penginstalan atau produknya. Perangkat lunak yang mengonversi aplikasi penyiapan warisan yang ada menjadi paket Pemasang Windows disebut sebagai alat pengemasan ulang. Mengemas ulang aplikasi penyiapan yang ada bukanlah praktik pengembangan terbaik. Aplikasi yang telah dirancang sejak awal untuk memanfaatkan fitur Penginstal Windows dapat lebih mudah diinstal pengguna dan layanan. Jika Anda memutuskan untuk menggunakan perangkat lunak pengemasan ulang, praktik berikut dapat membantu Anda menghasilkan paket Pemasang Windows yang lebih baik.

  • Alat pengemasan ulang mengonversi penginstalan lama menjadi paket Penginstal Windows dengan mengambil gambar sistem penahapan sebelum dan sesudah penginstalan. Setiap perubahan registri, perubahan file, atau pengaturan sistem yang terjadi selama proses pengambilan disertakan dalam penginstalan. Konfigurasikan perangkat keras dan perangkat lunak komputer yang digunakan untuk mengemas ulang penginstalan sedekat mungkin dengan sistem pengguna yang dimaksudkan. Buat paket terpisah untuk setiap konfigurasi perangkat keras yang berbeda. Kemas ulang menggunakan komputer penahapan yang bersih. Hapus aplikasi yang tidak perlu. Hentikan semua proses yang tidak perlu. Tutup semua layanan sistem yang tidak penting.
  • Selalu buat salinan penginstalan asli sebelum mulai mengerjakannya. Selalu kerjakan salinannya. Jangan pernah menghentikan pengemasan ulang sebelum selesai membangun paket. Jika paket ulang merusak paket, Anda masih akan memiliki yang asli.
  • Jangan mengemas ulang pembaruan perangkat lunak Microsoft ke dalam paket Pemasang Windows. Microsoft merilis pembaruan perangkat lunak, seperti paket layanan, seperti mengekstrak file mandiri yang secara otomatis menjalankan penginstalan. Pembaruan ini menggunakan penginstal yang berbeda dari Penginstal Windows untuk menggantikan sumber daya Windows yang dilindungi dan tidak dapat dikonversi menjadi paket Pemasang Windows. Untuk informasi tentang cara menyebarkan paket layanan Windows, lihat panduan penyebaran paket layanan di Microsoft TechNet.
  • Jangan gunakan alat pengemasan ulang untuk mengonversi paket Penginstal Windows menjadi paket baru. Penginstal Windows menambahkan informasi konfigurasi ke sistem serta sumber daya aplikasi. Ketika alat pengemasan ulang membandingkan sistem sebelum dan sesudah penginstalan, repackager salah menafsirkan informasi konfigurasi sebagai bagian dari aplikasi. Ini biasanya merusak aplikasi yang dikemas ulang. Sebagai gantinya, gunakan transformasi kustomisasi untuk memodifikasi paket Pemasang Windows yang ada, atau buat paket baru. Anda dapat membuat transformasi kustomisasi menggunakan alat Msitran.exe .
  • Jangan gunakan alat pengemasan ulang untuk mengonsolidasikan beberapa paket Pemasang Windows ke dalam satu paket. Sebagai gantinya , Anda dapat menggunakan alat Msistuff.exe untuk mengonfigurasi Setup.exe bootstrap yang dapat dieksekusi untuk menginstal paket satu demi satu.
  • Buat paket Windows Installer Anda sehingga dapat dengan mudah disesuaikan oleh pelanggan. Variabel global yang digunakan oleh Penginstal Windows selama penginstalan dapat diatur menggunakan properti publik atau transformasi kustomisasi. Berikan dokumentasi untuk penggunaan properti tersebut dan nilai default praktis untuk semua nilai yang dapat disesuaikan. Untuk informasi tentang mendapatkan dan mengatur properti, lihat Menggunakan Properti. Untuk contoh transformasi kustomisasi, lihat Contoh Transformasi Kustomisasi.

Jangan mencoba mengganti sumber daya yang dilindungi.

Paket Penginstal Windows tidak boleh mencoba mengganti sumber daya yang dilindungi selama penginstalan atau pembaruan. Pemasang Windows tidak menghapus atau mengganti sumber daya ini karena Windows mencegah penggantian file sistem penting, folder, dan kunci registri. Melindungi sumber daya ini mencegah kegagalan aplikasi dan sistem operasi.

  • Saat berjalan pada Windows Server 2008 atau Windows Vista, Pemasang Windows melewati penginstalan file atau kunci registri apa pun yang dilindungi oleh Windows Resource Protection (WRP), alat penginstal memasukkan peringatan dalam file log, dan melanjutkan dengan sisa penginstalan tanpa kesalahan. Untuk informasi, lihat Menggunakan Penginstal Windows dan Perlindungan Sumber Daya Windows.
  • WRP adalah nama baru untuk Windows File Protection (WFP). WRP melindungi kunci dan folder registri serta file sistem penting. Di Windows Server 2003, Windows XP, dan Windows 2000, ketika Penginstal Windows menemukan file yang dilindungi WFP, alat penginstal akan meminta agar WFP menginstal file. Untuk informasi, lihat Menggunakan Penginstal Windows dan Perlindungan Sumber Daya Windows.

Jangan bergantung pada sumber daya yang tidak penting.

Penginstalan atau pembaruan Anda tidak boleh bergantung pada penginstalan sumber daya non-kritis karena alasan berikut.

  • Tindakan kustom dapat gagal jika bergantung pada komponen milik fitur yang diiklankan pengguna daripada menginstal.
  • Tindakan kustom yang diurutkan sebelum tindakan InstallFinalize dapat gagal jika bergantung pada komponen yang berisi rakitan yang sedang diinstal. Penginstal Windows tidak menerapkan rakitan ke Singgahan Rakitan Global (GAC) hingga tindakan InstallFinalize selesai.

Gunakan API untuk mengambil informasi konfigurasi Windows Installer.

Penginstalan aplikasi atau pembaruan Anda tidak boleh bergantung pada akses langsung ke informasi konfigurasi Penginstal Windows yang disimpan di komputer Anda. Sebagai gantinya, gunakan antarmuka pemrograman aplikasi Penginstal Windows untuk mengambil informasi konfigurasi. Lokasi dan format informasi konfigurasi dikelola oleh layanan Penginstal Windows dan dapat berubah.

  • Fungsi Penginstalan dan Konfigurasi API Penginstal Windows dijelaskan dalam Referensi Fungsi Penginstal.
  • Properti Konfigurasi dijelaskan dalam Referensi Properti.
  • Metode dan properti otomatisasi dijelaskan dalam Referensi Antarmuka Automation. Contoh skrip WiLstPrd.vbs terhubung ke objek Penginstal dan menghitung produk terdaftar dan informasi produk. Untuk informasi selengkapnya, lihat Mencantumkan Produk, Properti, Fitur, dan Komponen.

Atur penginstalan aplikasi Anda di sekitar komponen.

Layanan Penginstal Windows menginstal atau menghapus kumpulan sumber daya yang disebut sebagai komponen. Karena komponen umumnya dibagikan, penulis paket penginstalan harus mengikuti aturan saat menentukan komponen fitur atau aplikasi.

  • Patuhi aturan komponen saat Mengatur Aplikasi ke Dalam Komponen untuk memastikan bahwa komponen baru, atau versi komponen baru, dapat diinstal dan dihapus tanpa merusak aplikasi lain. Anda dapat mengikuti prosedur yang dijelaskan dalam Menentukan Komponen Penginstal.
  • Alat penginstal melacak setiap komponen oleh GUID ID komponen masing-masing yang ditentukan dalam tabel Komponen. Sangat penting untuk pengoperasian mekanisme penghitungan referensi Penginstal Windows bahwa GUID ID komponen sudah benar. Ikuti panduan dalam Mengubah Kode Komponen.
  • Jika paket Anda harus melanggar aturan komponen, ketahui kemungkinan konsekuensinya dan pastikan instalasi Anda tidak pernah menginstal komponen ini di mana mereka dapat merusak komponen pada sistem pengguna. Untuk informasi lihat Apa yang terjadi jika aturan komponen rusak?.
  • Ketahui bagaimana Penginstal Windows menerapkan Aturan Penerapan Versi File saat Mengganti File yang Ada. Penginstal Windows terlebih dahulu menentukan apakah file kunci komponen sudah diinstal sebelum mencoba menginstal salah satu file komponen. Jika alat penginstal menemukan file dengan nama yang sama dengan file kunci komponen yang diinstal di lokasi target, penginstal membandingkan versi, tanggal, dan bahasa dari dua file kunci dan menggunakan aturan penerapan versi file untuk menentukan apakah akan menginstal komponen yang disediakan oleh paket. Jika alat penginstal menentukan perlu mengganti basis komponen pada file kunci, maka ia menggunakan aturan penerapan versi file pada setiap file yang diinstal untuk menentukan apakah akan mengganti file.

Kurangi ukuran paket Windows Installer besar.

Paket Windows yang sangat besar mengambil sumber daya sistem dan mungkin sulit bagi pengguna untuk menginstal. Adalah praktik yang baik untuk mengurangi ukuran Paket Pemasang Windows yang sangat besar dengan metode berikut.

  • Kompres file dalam penginstalan dan simpan dalam file kabinet (.cab). Penginstal memungkinkan file .cab disimpan sebagai file eksternal terpisah, atau sebagai aliran data dalam paket MSI itu sendiri. Untuk informasi, lihat Menggunakan Kabinet dan Sumber Terkompresi.
  • Hapus ruang penyimpanan terbuang dalam file .msi menggunakan salah satu opsi yang dibahas dalam Mengurangi Ukuran File .msi.
  • Jika paket Penginstal Windows Anda berisi lebih dari 32767 file, Anda harus mengubah skema database. Untuk informasi, lihat Menulis Paket Besar.

Jika Anda menggunakan tindakan kustom, ikuti praktik tindakan kustom yang baik.

Penginstal Windows memiliki banyak tindakan standar bawaan untuk penginstalan dan pemeliharaan aplikasi. Pengembang harus mencoba mengandalkan tindakan standar sebanyak praktis, daripada membuat tindakan kustom mereka sendiri. Namun, ada situasi di mana pengembang paket penginstalan merasa perlu untuk menulis tindakan kustom.

  • Ikuti panduan untuk Menggunakan Tindakan Kustom.
  • Ikuti Panduan untuk Mengamankan Tindakan Kustom. Tindakan kustom yang menggunakan informasi sensitif tidak boleh menulis informasi ini ke dalam log. Untuk informasi, lihat Keamanan Tindakan Kustom.
  • Tindakan Kustom tidak boleh mencoba mengatur titik masuk Pemulihan Sistem dari dalam tindakan kustom. Untuk informasi, lihat Mengatur titik pemulihan dari Tindakan Kustom.
  • Kembalikan pesan kesalahan dari tindakan kustom dan tulis ke log untuk memfasilitasi pemecahan masalah tindakan kustom. Untuk informasi, lihat Tindakan Kustom Pesan Kesalahan dan Menampilkan Pesan Kesalahan dari Tindakan Kustom.
  • Jangan ubah status sistem dari tindakan kustom langsung. Tindakan kustom yang mengubah sistem secara langsung atau memanggil layanan sistem lain harus ditangguhkan ke waktu ketika skrip penginstalan dijalankan. Setiap tindakan kustom eksekusi yang ditangguhkan yang mengubah status sistem harus didahului oleh tindakan kustom pemutaran kembali untuk membatalkan perubahan status sistem pada pembatalan penginstalan. Untuk informasi, lihat Mengubah Status Sistem Menggunakan Tindakan Kustom.
  • Tindakan kustom yang melakukan operasi penginstalan kompleks harus berupa file yang dapat dieksekusi atau pustaka tautan dinamis. Batasi penggunaan tindakan kustom berdasarkan skrip ke operasi penginstalan sederhana.
  • Buat detail apa yang dilakukan tindakan kustom Anda ke sistem dengan mudah ditemukan oleh administrator sistem. Letakkan detail entri registri dan file yang digunakan oleh tindakan kustom Anda ke dalam tabel kustom dan minta tindakan kustom dibaca dari tabel ini. Ini ditunjukkan oleh contoh dalam Menggunakan Tindakan Kustom untuk Membuat Akun Pengguna di Komputer Lokal. Untuk informasi tentang menambahkan tabel kustom ke database, lihat Bekerja dengan Kueri dan Contoh Kueri Database Menggunakan SQL dan Skrip.
  • Tindakan kustom tidak boleh menampilkan kotak dialog. Tindakan kustom yang memerlukan antarmuka pengguna dapat menggunakan fungsi MsiProcessMessage sebagai gantinya. Lihat Mengirim Pesan ke Penginstal Windows Menggunakan MsiProcessMessage.
  • Tindakan kustom tidak boleh menggunakan salah satu fungsi yang tercantum di halaman: Fungsi Tidak untuk Digunakan dalam Tindakan Kustom.
  • Jika penginstalan dimaksudkan untuk berjalan di server terminal, uji bahwa semua tindakan kustom Anda mampu berjalan di server terminal. Untuk informasi selengkapnya lihat properti TerminalServer.
  • Agar tindakan kustom berjalan ketika patch tertentu dihapus instalannya, tindakan kustom harus ada di aplikasi asli atau berada dalam patch untuk produk yang selalu diterapkan. Untuk informasi selengkapnya, lihat Mencopot Instalan Tindakan Kustom.
  • Tindakan kustom tidak boleh menggunakan tingkat UI sebagai kondisi untuk mengirim pesan kesalahan ke alat penginstal karena ini dapat mengganggu pengelogan dan pesan eksternal. Untuk informasi, lihat Menentukan Tingkat UI dari Tindakan Kustom.
  • Gunakan pernyataan bersyarat dan Sintaks Pernyataan Bersyarat untuk memastikan bahwa paket Anda menjalankan tindakan kustom dengan benar, tidak menjalankan tindakan kustom, atau menjalankan tindakan kustom alternatif saat paket dihapus instalasinya. Uji bahwa paket berfungsi seperti yang diharapkan saat menghapus instalan tindakan kustom. Untuk informasi, lihat Tindakan Pengondisian untuk Dijalankan Selama Penghapusan
  • Jika penginstalan harus mampu dijalankan oleh pengguna yang tidak memiliki hak istimewa administrator, uji untuk memastikan bahwa semua tindakan kustom dapat dijalankan dengan hak istimewa non-administrator. Tindakan kustom memerlukan hak istimewa yang ditingkatkan untuk memodifikasi bagian sistem yang tidak spesifik pengguna. Alat penginstal dapat menjalankan tindakan kustom dengan hak istimewa yang ditingkatkan jika aplikasi terkelola sedang diinstal atau jika kebijakan sistem telah ditentukan untuk hak istimewa yang ditingkatkan. Setiap tindakan kustom yang memerlukan hak istimewa yang ditinggikan harus menyertakan msidbCustomActionTypeInScript dan msidbCustomActionTypeNoImpersonate Custom Action In-Script Execution Options dalam jenis tindakan kustom. Ini ditunjukkan oleh contoh dalam Menggunakan Tindakan Kustom untuk Membuat Akun Pengguna di Komputer Lokal.

Jika Anda menggunakan rakitan, ikuti praktik perakitan yang baik

Jika paket Anda menggunakan rakitan perangkat lunak, ikuti panduan untuk Menambahkan Rakitan ke Paket, Memperbarui Rakitan, dan Menginstal dan Menghapus Rakitan.

Jangan kirim penginstalan bersamaan.

Penginstalan Bersamaan, juga disebut Penginstalan Berlapis, menginstal paket Penginstal Windows lain selama penginstalan yang sedang berjalan. Penggunaan instalasi bersamaan bukanlah praktik yang baik karena sulit bagi pelanggan untuk melayani. Patching dan peningkatan mungkin tidak berfungsi dengan penginstalan bersamaan. Alternatif yang direkomendasikan untuk menggunakan penginstalan bersamaan adalah menggunakan aplikasi penyiapan dan handler UI eksternal untuk menginstal beberapa paket Windows Installer secara berurutan.

Untuk informasi selengkapnya tentang menggunakan handler UI eksternal lihat Memantau Penginstalan Menggunakan MsiSetExternalUI. Untuk informasi selengkapnya tentang menggunakan handler eksternal berbasis rekaman, lihat Memantau Penginstalan Menggunakan MsiSetExternalUIRecord.

Penginstalan bersamaan terkadang digunakan di lingkungan perusahaan yang terkontrol untuk menginstal aplikasi yang tidak ditujukan untuk publik. Ikuti panduan ini jika Anda memutuskan untuk menggunakan penginstalan bersamaan.

  • Jangan gunakan penginstalan bersamaan untuk menginstal atau memperbarui produk pengiriman.
  • Penginstalan bersamaan tidak boleh berbagi komponen.
  • Penginstalan administratif tidak boleh berisi penginstalan bersamaan.
  • Bilah Kemajuan Terintegrasi tidak boleh digunakan dengan penginstalan bersamaan.
  • Sumber daya yang akan diiklankan tidak boleh diinstal oleh penginstalan bersamaan.
  • Paket yang melakukan penginstalan bersamaan aplikasi juga harus menghapus instalan aplikasi bersamaan ketika produk induk dihapus instalannya. Penginstalan berlapis ada di bawah konteks produk induk di Tambahkan/Hapus Program di Panel Kontrol.

Menjaga nama paket dan kode paket tetap konsisten.

File .msi dapat diberikan nama apa pun yang membantu pengguna mengidentifikasi paket, tetapi nama tidak boleh diubah tanpa juga mengubah kode produk.

  • Beri file .msi Anda nama yang mudah digunakan yang memungkinkan pengguna mengidentifikasi konten paket Penginstal Windows.
  • Kode produk adalah identifikasi utama aplikasi dan harus berubah setiap kali ada pembaruan komprehensif untuk aplikasi. Untuk informasi, lihat ProductCode dan Mengubah Kode Produk. Mengubah nama file .msi aplikasi dianggap sebagai perubahan komprehensif dan selalu memerlukan perubahan kode produk yang sesuai untuk menjaga konsistensi.
  • Kode paket adalah pengidentifikasi utama yang digunakan oleh alat penginstal untuk mencari dan memvalidasi paket yang benar untuk penginstalan tertentu. Tidak ada dua file .msi nonidentik yang pernah memiliki kode paket yang sama. Jika paket diubah tanpa mengubah kode paket, alat penginstal mungkin tidak menggunakan paket yang lebih baru jika keduanya masih dapat diakses oleh alat penginstal. Kode paket disimpan di Properti Ringkasan Nomor Revisi dari Aliran Informasi Ringkasan.
  • Perhatikan bahwa huruf dalam kode produk dan GUID kode paket semuanya harus huruf besar.

Jangan gunakan tabel SelfReg dan TypeLib.

  • Penulis paket penginstalan sangat disarankan untuk tidak menggunakan pendaftaran mandiri dan tabel SelfReg . Sebaliknya, mereka harus mendaftarkan modul dengan menulis satu atau beberapa tabel di Grup Tabel Registri. Banyak manfaat Penginstal Windows hilang dengan pendaftaran mandiri karena rutinitas pendaftaran mandiri cenderung menyembunyikan informasi konfigurasi penting. Untuk daftar alasan menghindari pendaftaran mandiri, lihat tabel SelfReg.
  • Penulis paket penginstalan sangat disarankan untuk tidak menggunakan tabel TypeLib . Alih-alih menggunakan tabel TypeLib, daftarkan pustaka jenis dengan menggunakan tabel Registri . Jika penginstalan yang menggunakan tabel TypeLib gagal dan harus digulung balik, putar kembali mungkin tidak memulihkan komputer ke status yang sama yang ada sebelum pemutaran kembali.

Berikan opsi untuk menginstal tanpa antarmuka pengguna.

Administrator sering lebih suka menyebarkan aplikasi dalam perusahaan tanpa memerlukan interaksi pengguna. Adalah praktik yang baik untuk memungkinkan aplikasi Anda menyediakan opsi untuk diinstal dengan tingkat antarmuka pengguna Tidak Ada.

  • Gunakan properti publik untuk informasi konfigurasi. Administrator dapat memberikan informasi ini pada baris perintah.
  • Tidak mengharuskan penginstalan bergantung pada informasi yang dikumpulkan dari interaksi pengguna dengan kotak dialog. Informasi ini tidak tersedia selama penginstalan senyap.
  • Jangan otomatis menghidupkan ulang komputer pengguna selama penginstalan senyap.
  • Administrator dapat mengatur tingkat antarmuka pengguna saat menginstal dengan menggunakan opsi baris perintah "/q". Tingkat antarmuka pengguna juga dapat diatur secara terprogram dengan panggilan ke MsiSetInternalUI.

Hindari menggunakan kebijakan AlwaysInstallElevated.

Jika kebijakan AlwaysInstallElevated tidak ditetapkan, aplikasi yang tidak didistribusikan oleh administrator diinstal menggunakan hak istimewa pengguna dan hanya aplikasi terkelola yang mendapatkan hak istimewa yang ditinggikan. Mengatur kebijakan ini mengarahkan Penginstal Windows untuk menggunakan izin sistem ketika menginstal aplikasi pada sistem. Metode ini dapat membuka komputer ke risiko keamanan, karena ketika kebijakan ini diatur, pengguna non-administrator dapat menjalankan penginstalan dengan hak istimewa yang ditinggikan dan mengakses lokasi aman di komputer. Ini adalah praktik yang baik untuk menggunakan metode lain daripada kebijakan AlwaysInstallElevated saat Menginstal Paket dengan Hak Istimewa yang Ditinggikan untuk Aplikasi Terkelola Non-Admin atau Patching Per Pengguna.

Aktifkan kebijakan DisableMedia untuk membatasi penginstalan yang tidak sah.

Kebijakan DisableMedia dapat mencegah penginstalan aplikasi yang tidak sah. Ketika kebijakan ini diaktifkan, pengguna dan administrator yang menjalankan penginstalan pemeliharaan dari satu produk dicegah menggunakan Dialog Telusuri untuk menelusuri sumber media, seperti CD-ROM, untuk sumber produk lain yang dapat diinstal. Penjelajahan untuk produk lain dicegah terlepas dari apakah penginstalan dilakukan dengan hak istimewa yang ditingkatkan. Pengguna masih dapat menginstal ulang produk dari media jika pengguna memiliki sumber media berlabel benar.

Jaga agar file sumber paket asli tetap aman dan tersedia untuk pengguna.

Dalam beberapa kasus, sumber asli paket Penginstal Windows mungkin diperlukan untuk menginstal sesuai permintaan, memperbaiki, atau memperbarui aplikasi. Jika alat penginstal tidak dapat menemukan sumber yang tersedia, pengguna diminta untuk menyediakan media atau pergi ke lokasi jaringan yang berisi sumber yang diperlukan. Ini adalah praktik yang baik untuk memastikan bahwa alat penginstal memiliki sumber yang dibutuhkan tanpa harus meminta pengguna.

  • Gunakan Tanda Tangan Digital dan File Kabinet Eksternal untuk memastikan bahwa sumber origial yang digunakan oleh alat penginstal aman. Gambar sumber yang tidak dikompresi yang disimpan di lokasi publik tidak aman.
  • Sertakan daftar lengkap jalur sumber jaringan atau URL ke paket penginstalan aplikasi di properti SOURCELIST.
  • Gunakan berbagi Sistem File Terdistribusi (DFS) untuk jalur sumber.
  • Gunakan WINDOWS Installer API untuk mengambil dan memodifikasi informasi daftar sumber untuk aplikasi dan patch Windows Installer. Untuk informasi, lihat Mengelola Sumber Penginstalan.
  • Gunakan metode dan properti Objek Penginstal, Objek Produk, dan Objek Patch untuk mengambil dan memodifikasi informasi daftar sumber untuk aplikasi dan patch Penginstal Windows.
  • Patuhi poin yang tercantum dalam Mencegah Patch Memerlukan Akses ke titik Sumber Penginstalan Asli untuk meminimalkan kemungkinan bahwa patch Anda akan memerlukan akses ke sumber asli.
  • Simpan file sumber paket di lokasi yang bukan folder sementara sistem. File sumber Penginstal Windows yang disimpan di folder sementara bisa menjadi tidak tersedia bagi pengguna.

Aktifkan pengelogan verbose di komputer pengguna saat memecahkan masalah penyebaran.

Pengelogan Penginstal Windows menyertakan opsi pengelogan verbose yang dapat diaktifkan di komputer pengguna. Informasi dalam log verbose dapat membantu ketika mencoba memecahkan masalah penyebaran paket Penginstal Windows.

  • Anda dapat mengaktifkan pengelogan verbose di komputer pengguna dengan menggunakan Opsi Baris Perintah, properti MsiLogging, kebijakan Pengelogan, MsiEnableLog, dan metode EnableLog.
  • Sumber daya yang sangat berguna untuk menafsirkan file log Penginstal Windows Wilogutl.exe. Alat ini membantu analisis file log dan menampilkan solusi yang disarankan untuk kesalahan yang ditemukan dalam file log.
  • Opsi pengelogan verbose harus digunakan hanya untuk tujuan pemecahan masalah dan tidak boleh dibiarkan karena dapat memiliki efek buruk pada performa sistem dan ruang disk. Setiap kali Anda menggunakan alat Tambahkan/Hapus Program di Panel Kontrol, file baru dibuat.

Penghapusan instalasi membuat komputer pengguna dalam keadaan bersih.

Penghapusan aplikasi sama pentingnya dengan penginstalan. Ketika paket Penginstal Windows dihapus, paket tersebut tidak boleh meninggalkan bagian yang tidak berguna dari dirinya sendiri di belakang komputer pengguna.

  • Jika file yang seharusnya dihapus dari komputer pengguna tetap diinstal setelah menjalankan penghapusan instalasi, penginstal mungkin tidak menghapus komponen yang berisi file karena satu atau beberapa alasan yang dijelaskan dalam Menghapus File terdampar.
  • Jika aplikasi harus didaftarkan, buat paket untuk menghapus informasi registri saat aplikasi dihapus instalasinya. Untuk informasi, lihat Menambahkan atau Menghapus Kunci Registri pada Penginstalan atau Penghapusan Komponen. Jika aplikasi tidak terdaftar, aplikasi tidak tercantum dalam fitur Tambahkan atau Hapus Program di Panel Kontrol dan tidak dapat dikelola dengan menggunakan Penginstal Windows.
  • Untuk menyembunyikan aplikasi dari fitur Tambahkan atau Hapus Program di Panel Kontrol dan masih dapat menggunakan Penginstal Windows untuk mengelola aplikasi, ikuti panduan yang dijelaskan dalam Menambahkan dan Menghapus Aplikasi dan Tidak Meninggalkan Jejak di Registri.
  • Tindakan kustom harus dikondisikan untuk berjalan atau tidak sesuai kebutuhan setelah penghapusan instalasi. Tindakan kustom yang berbeda mungkin perlu dijalankan saat menginstal dan menghapus instalasi.
  • Informasi kustomisasi khusus pengguna dapat disimpan dalam file teks di komputer. Ini memiliki keuntungan bahwa file dapat dihapus ketika aplikasi dihapus instalasinya, bahkan jika pengguna penyesuaian ini saat ini tidak masuk.

Uji paket untuk penyebaran penginstalan per pengguna dan per mesin.

Adalah praktik yang baik untuk memungkinkan pelanggan memutuskan apakah akan menyebarkan paket untuk penginstalan dalam konteks penginstalan per mesin atau per pengguna.

  • Pertimbangkan apakah aplikasi harus tersedia untuk hanya pengguna tertentu atau semua pengguna komputer selama proses pengembangan.
  • Uji bahwa paket berfungsi dengan benar untuk penginstalan per pengguna dan konteks penginstalan per mesin.
  • Buat paket mudah disesuaikan dan biarkan pelanggan memutuskan apakah akan menyebarkannya per pengguna atau per mesin.

Rencanakan dan uji strategi layanan sebelum mengirimkan aplikasi.

Anda harus memutuskan bagaimana Anda berniat untuk melayani aplikasi sebelum menyebarkan aplikasi untuk pertama kalinya.

Kurangi dependensi pembaruan pada sumber asli.

Jika file sumber asli diperlukan untuk memperbarui aplikasi Anda, ini dapat membuat layanan aplikasi lebih sulit. Metode berikut dapat membantu mengurangi ketergantungan pembaruan pada sumber asli.

Jangan mendistribusikan modul penggabungan yang tidak dapat dilayakan.

Aplikasi tidak boleh bergantung pada modul penggabungan untuk penginstalan komponen jika pemilik modul penggabungan dan pemilik aplikasi berbeda. Ini dapat menyulitkan layanan aplikasi karena kedua pemilik perlu berkoordinasi untuk memperbarui aplikasi atau modul. Tanpa mengetahui semua aplikasi yang telah menggunakan modul penggabungan, pemilik aplikasi tidak dapat memperbarui modul penggabungan tanpa memperkirakan bahwa pembaruan mungkin tidak kompatibel dengan aplikasi lain. Pemilik modul penggabungan tidak memiliki metode langsung untuk memperbarui paket Penginstal Windows yang telah menginstal modul penggabungan.

  • Pertimbangkan untuk menyediakan komponen yang diperlukan kepada pengguna sebagai penginstalan Penginstal Windows lainnya.

Hindari menambal penginstalan administratif.

Sediakan pada jaringan penginstalan administratif paket Windows Installer asli aplikasi Anda untuk memungkinkan anggota grup kerja menginstal aplikasi. Pengguna gambar administratif ini kemudian harus menerapkan pembaruan ke instans lokal aplikasi yang terletak di komputer mereka. Ini membuat pengguna tetap sinkron dengan gambar administratif. Menerapkan pembaruan ke penginstalan administratif tidak disarankan karena alasan berikut.

  • Ukuran dan latensi unduhan yang diperlukan bagi pengguna untuk mendapatkan pembaruan ditingkatkan dibandingkan dengan mengunduh patch. Seluruh paket Windows Installer dan file sumber yang diperbarui harus diunduh, di-recach, dan diinstal ulang.
  • Pengguna tidak dapat menginstal sesuai permintaan dan memperbaiki aplikasi dari penginstalan administratif yang diperbarui hingga mereka melakukan pencadangan dan penginstalan ulang aplikasi.
  • Menerapkan patch ke penginstalan administratif akan menghapus tanda tangan digital dari paket. Administrator harus mengundur paket. Untuk informasi selengkapnya tentang menggunakan tanda tangan digital, lihat Tanda Tangan Digital dan Penginstal Windows.
  • Banyak patch biner menargetkan gambar RTM aplikasi dan memerlukan versi file sebelumnya. Instans lokal aplikasi yang diinstal dari penginstalan administratif yang diperbarui mungkin tidak berfungsi dengan pembaruan lain. Banyak aplikasi patch biner dapat gagal.
  • Menerapkan patch ke penginstalan administratif memperbarui file sumber dan file .msi tetapi tidak memberi stempel gambar jaringan dengan informasi tentang pembaruan. Pengguna tidak dapat menentukan pembaruan mana yang telah mereka terima dari penginstalan administratif. Ini membuatnya tidak mungkin untuk urutan pembaruan yang diterapkan di sisi pengguna dengan yang sudah diterapkan di sisi gambar administratif.
  • Patch yang diterapkan ke penginstalan administratif tidak dapat dibongkar patch. Ini dapat mencegah kode paket yang di-cache di komputer pengguna menjadi berbeda dari kode paket pada penginstalan administratif. Jika kode paket yang di-cache di komputer pengguna menjadi berbeda dari itu pada penginstalan administratif, instal ulang aplikasi dari penginstalan administratif lalu patch komputer klien.
  • Jika Anda memutuskan untuk menerapkan pembaruan kecil dengan menambal gambar administratif, ikuti panduan yang dijelaskan dalam topik: Menerapkan Pembaruan Kecil dengan Menambal Gambar Administratif.

Daftarkan pembaruan untuk dijalankan dengan hak istimewa yang ditinggikan.

Dimulai dengan Penginstal Windows 3.0, dimungkinkan untuk menerapkan patch ke aplikasi yang telah diinstal dalam konteks yang dikelola per pengguna, setelah patch didaftarkan sebagai memiliki hak istimewa yang ditinggikan. Anda tidak dapat menerapkan patch ke aplikasi yang diinstal dalam konteks yang dikelola per pengguna menggunakan versi Penginstal Windows yang lebih lama dari versi 3.0.

Gunakan Tabel MsiPatchSequence untuk mengurutkan patch.

Sertakan Tabel MsiPatchSequence dalam paket Anda dan tambahkan informasi pengurutan patch. Dimulai dengan Penginstal Windows versi 3.0, alat penginstal dapat menggunakan Tabel MsiPatchSequence saat menginstal beberapa patch untuk menentukan urutan aplikasi patch terbaik. Gunakan panduan yang dijelaskan dalam Patch Sequencing di Windows Installer versi 3.0 white paper untuk menentukan keluarga patch.

  • Jika praktis, tentukan semua patch sebagai milik satu keluarga patch. Dalam banyak kasus, satu keluarga patch memberikan fleksibilitas yang cukup untuk berurutan patch. Kompleksitas penulisan meningkat ketika beberapa keluarga patch digunakan. Tetapkan nama yang bermakna ke keluarga patch dan tetapkan nilai urutan dalam keluarga patch yang meningkat dari waktu ke waktu. Ikuti Beberapa Contoh Patching untuk menerapkan patch dalam urutan penerbitannya.
  • Gunakan Tabel PatchSequence di Patchwiz.dll untuk menghasilkan informasi dalam Tabel MsiPatchSequence. Versi PATCHWIZ.DLL yang dirilis dengan Windows Installer 3.0 dapat secara otomatis menghasilkan informasi urutan patch. Untuk informasi selengkapnya tentang cara menambahkan patch baru, lihat Membuat Informasi Urutan Patch. Untuk informasi selengkapnya tentang skenario pengurutan patch, lihat whitepaper: Pengurutan Patch di Penginstal Windows versi 3.0.

Uji paket penginstalan secara menyeluruh.

Uji penginstalan, perbaikan, dan penghapusan paket Windows Installer Anda yang benar. Anda dapat membagi proses pengujian Anda menjadi bagian-bagian berikut.

  • Pengujian Penginstalan - Uji penginstalan dengan semua kemungkinan kombinasi fitur aplikasi. Uji semua jenis penginstalan, termasuk Penginstalan Administratif, Penginstalan Putar Kembali, dan Penginstalan Sesuai Permintaan. Coba semua metode penginstalan yang mungkin, termasuk mengklik file .msi, opsi baris perintah, dan menginstal dari panel kontrol. Uji bahwa paket dapat diinstal oleh pengguna dalam semua konteks hak istimewa yang mungkin. Coba instal paket setelah disebarkan oleh semua metode yang mungkin. Aktifkan Pengelogan Penginstal Windows untuk setiap pengujian dan atasi semua kesalahan yang ditemukan di log penginstal dan log peristiwa.
  • Pengujian Antarmuka Pengguna - Uji paket saat diinstal dengan semua tingkat antarmuka pengguna yang mungkin. Uji paket yang diinstal tanpa antarmuka pengguna dan dengan semua informasi yang disediakan melalui antarmuka pengguna. Pastikan Aksesibilitas antarmuka pengguna dan antarmuka pengguna berfungsi seperti yang diharapkan untuk resolusi layar dan ukuran font yang berbeda.
  • Layanan dan Pengujian Perbaikan - Uji bahwa paket dapat menangani Patching dan Peningkatan yang dikirimkan oleh Pembaruan Kecil, Peningkatan Kecil, dan Peningkatan Utama. Sebelum menyebarkan paket, tulis pembaruan uji coba dari setiap jenis dan coba terapkan ke paket asli.
  • Hapus Instalan Pengujian - Verifikasi bahwa ketika paket dihapus, paket tidak meninggalkan bagian yang tidak berguna dari dirinya sendiri di belakang komputer pengguna dan bahwa hanya informasi milik paket yang telah dihapus. Boot ulang komputer pengujian setelah menghapus instalan paket dan memverifikasi integritas alat sistem umum dan aplikasi standar lainnya. Uji bahwa paket dapat dihapus oleh pengguna dalam semua konteks hak istimewa yang mungkin. Uji semua metode untuk menghapus paket, klik file .msi, coba opsi baris perintah, dan coba hapus paket dari panel kontrol. Aktifkan Pengelogan Penginstal Windows untuk setiap pengujian dan atasi semua kesalahan yang ditemukan di log penginstal dan log peristiwa.
  • Pengujian Fungsionalitas Produk - Pastikan bahwa aplikasi berfungsi seperti yang diharapkan setelah penginstalan, perbaikan, atau penghapusan paket.

Perbaiki semua kesalahan validasi sebelum menyebarkan paket penginstalan baru atau yang direvisi.

Jalankan validasi paket pada paket Penginstal Windows baru atau yang direvisi sebelum mencoba menginstalnya untuk pertama kalinya. Validasi memeriksa database Penginstal Windows untuk kesalahan penulisan. Mencoba menginstal paket yang tidak lulus validasi dapat merusak sistem pengguna.

  • Anda dapat memvalidasi paket Anda menggunakan Orca.exe atau Msival2.exe. Kedua alat disediakan dengan Windows SDK. Vendor pihak ketiga juga dapat menggabungkan sistem validasi ICE ke dalam lingkungan penulisan mereka.
  • Anda dapat menggunakan set standar Internal Consistency Evaluators - ICEs yang disertakan dalam file .cub yang disediakan dengan SDK, atau menyesuaikan validasi dengan Membangun ICE dan menambahkannya ke file .cub.
  • Anda dapat menggunakan Evalcom2.dll untuk menerapkan Validasi Automation untuk paket penginstalan dan menggabungkan modul.

Menulis penginstalan yang aman.

Ikuti panduan ini saat mengembangkan paket Anda untuk membantu menjaga lingkungan yang aman selama penginstalan.

Gunakan PMSIHANDLE alih-alih HANDLE

Variabel jenis PMSIHANDLE didefinisikan dalam msi.h. Disarankan agar aplikasi Anda menggunakan jenis PMSIHANDLE karena alat penginstal menutup objek PMSIHANDLE saat keluar dari cakupan, sedangkan aplikasi Anda harus menutup objek MSIHANDLE dengan memanggil MsiCloseHandle. PMSIHandle menyediakan operator transmisi ke MSIHANDLE untuk kompatibilitas tanda tangan API.

Misalnya, jika Anda menggunakan kode seperti ini:

MSIHANDLE hRec = MsiCreateRecord(3);

Ubah ke:

PMSIHANDLE hRec = MsiCreateRecord(3);