Windows Installer (msiexec.exe, sebelumnya dikenal sebagai Microsoft Installer,[1] codename Darwin)[2][3] adalah komponen perangkat lunak dan antarmuka pemrograman aplikasi (API) Microsoft Windows yang digunakan untuk instalasi, pemeliharaan, dan penghapusan perangkat lunak. Informasi instalasi, dan secara opsional file itu sendiri, dikemas dalam paket instalasi, database relasional longgar terstruktur sebagai Penyimpanan Terstruktur COM dan umumnya dikenal sebagai "file MSI", dari ekstensi nama file default mereka. Paket dengan ekstensi file mst berisi Windows Installer "Skrip Transformasi", paket dengan ekstensi msm berisi "Merge Modules" dan ekstensi file pcp digunakan untuk "Patch Creation Properties".[4] Windows Installer berisi perubahan signifikan dari pendahulunya, Setup API. Fitur-fitur baru termasuk kerangka kerja GUI dan generasi otomatis dari urutan penghapusan instalasi. Windows Installer diposisikan sebagai alternatif untuk kerangka kerja penginstal yang dapat dijalankan yang berdiri sendiri seperti versi InstallShield dan NSIS yang lebih lama.

Sebelum Microsoft Store (kemudian bernama Windows Store), Microsoft mendorong pihak ketiga untuk menggunakan Windows Installer sebagai dasar kerangka kerja penginstalan, sehingga mereka dapat menyinkronkan dengan benar dengan penginstal lain dan menjaga database internal produk yang diinstal tetap konsisten. Fitur penting seperti rollback dan pembuatan versi bergantung pada database internal yang konsisten untuk pengoperasian yang andal. Selanjutnya, Windows Installer memfasilitasi prinsip hak istimewa paling rendah dengan melakukan penginstalan perangkat lunak melalui proxy untuk pengguna yang tidak memiliki hak istimewa.

Struktur Logis Paket sunting

Paket menjelaskan penginstalan satu atau lebih produk lengkap dan secara universal diidentifikasi oleh GUID. Sebuah produk terdiri dari komponen, dikelompokkan ke dalam fitur. Windows Installer tidak menangani ketergantungan antar produk.

Produk sunting

Satu, terinstal, program kerja (atau set program) adalah produk. Sebuah produk diidentifikasi oleh GUID unik (properti ProductCode) yang memberikan identitas otoritatif di seluruh dunia. GUID, dalam kombinasi dengan nomor versi (properti ProductVersion), memungkinkan manajemen rilis file produk dan kunci registri.

Sebuah paket menyertakan logika paket dan metadata lain yang berhubungan dengan bagaimana paket dijalankan saat dijalankan. Misalnya, mengubah file EXE dalam produk mungkin memerlukan ProductCode atau ProductVersion diubah untuk manajemen rilis. Namun, hanya mengubah atau menambahkan kondisi peluncuran (dengan produk tetap sama persis seperti versi sebelumnya) masih memerlukan PackageCode untuk mengubah manajemen rilis dari file MSI itu sendiri.

Fitur sunting

Fitur adalah sekelompok komponen hierarkis. Sebuah fitur dapat berisi sejumlah komponen dan sub-fitur lainnya. Paket yang lebih kecil dapat terdiri dari satu fitur. Pemasang yang lebih kompleks mungkin menampilkan kotak dialog "pengaturan khusus", dari mana pengguna dapat memilih fitur mana yang akan dipasang atau dihapus.

Pembuat paket mendefinisikan fitur produk. Pengolah kata, misalnya, mungkin menempatkan file inti program ke dalam satu fitur, dan file bantuan program, pemeriksa ejaan opsional, dan modul alat tulis ke dalam fitur tambahan.

Komponen sunting

Komponen adalah unit dasar dari suatu produk. Setiap komponen diperlakukan oleh Windows Installer sebagai satu unit. Pemasang tidak dapat menginstal hanya sebagian dari suatu komponen.[5] Komponen dapat berisi file program, folder, komponen COM, kunci registri, dan pintasan. Pengguna tidak langsung berinteraksi dengan komponen.

Komponen diidentifikasi secara global oleh GUID; sehingga komponen yang sama dapat dibagi di antara beberapa fitur dari paket yang sama atau beberapa paket, idealnya melalui penggunaan Merge Modules.

Jalur Utama sunting

Jalur kunci adalah file tertentu, kunci registri, atau sumber data ODBC yang ditetapkan oleh pembuat paket sebagai penting untuk komponen tertentu. Karena file adalah jenis jalur kunci yang paling umum, istilah file kunci biasanya digunakan. Sebuah komponen dapat berisi paling banyak satu jalur kunci; jika suatu komponen tidak memiliki jalur kunci eksplisit, folder tujuan komponen akan dianggap sebagai jalur kunci. Saat program berbasis MSI diluncurkan, Windows Installer memeriksa keberadaan jalur kunci. Jika ada ketidakcocokan antara status sistem saat ini dan nilai yang ditentukan dalam paket MSI (misalnya, file kunci tidak ada), fitur terkait akan diinstal ulang. Proses ini dikenal sebagai self-healing atau self-repair. Tidak boleh ada dua komponen yang menggunakan jalur kunci yang sama.

Mengembangkan paket penginstal sunting

Membuat paket penginstal untuk aplikasi baru bukanlah hal yang sepele. Penting untuk menentukan file mana yang harus diinstal, ke mana dan dengan kunci registri apa. Operasi non-standar apa pun dapat dilakukan menggunakan Tindakan Kustom, yang biasanya dikembangkan di DLL. Ada sejumlah produk komersial dan freeware untuk membantu dalam membuat paket MSI, termasuk Visual Studio (asli hingga VS 2010,[6] dengan ekstensi pada versi VS yang lebih baru[7]), InstallShield dan WiX. Untuk berbagai tingkat, antarmuka pengguna dan perilaku dapat dikonfigurasi untuk digunakan dalam situasi yang kurang umum seperti instalasi tanpa pengawasan. Setelah disiapkan, paket penginstal "dikompilasi" dengan membaca instruksi dan file dari mesin lokal pengembang, dan membuat file .msi.

Antarmuka pengguna (user interface/ dialog box) yang disajikan pada awal penginstalan dapat diubah atau dikonfigurasikan oleh insinyur penyiapan yang mengembangkan penginstal baru. Bahasa tombol, bidang teks, dan label terbatas yang dapat diatur dalam urutan kotak dialog. Paket penginstal harus dapat berjalan tanpa UI apa pun, untuk apa yang disebut "unatettended installation".

Validasi ICE sunting

Microsoft menyediakan satu set Internal Consistency Evaluators (ICE) yang dapat digunakan untuk mendeteksi potensi masalah dengan database MSI.[8] Aturan ICE digabungkan ke dalam file CUB, yang merupakan file MSI yang dilucuti yang berisi tindakan kustom yang menguji konten database MSI target untuk peringatan dan kesalahan validasi. Validasi ICE dapat dilakukan dengan alat Platform SDK Orca dan msival2, atau dengan alat validasi yang dikirimkan dengan berbagai lingkungan pembuatan.

Misalnya, beberapa aturan ICE adalah:

  • ICE09: Memvalidasi bahwa setiap komponen yang ditujukan untuk folder Sistem ditandai sebagai permanen.
  • ICE24: Memvalidasi bahwa kode produk, versi produk, dan bahasa produk memiliki format yang sesuai.
  • ICE33: Memvalidasi bahwa tabel Registri tidak digunakan untuk data yang lebih cocok untuk tabel lain (Kelas, Ekstensi, Kata Kerja, dan seterusnya).

Mengatasi peringatan dan kesalahan validasi ICE merupakan langkah penting dalam proses rilis.

Versi sunting

Versi Disertakan dengan[9] Juga Tersedia untuk
1.0 Office 2000 N/A
1.1 Windows 2000 RTM, SP1, SP2

Office XP

Windows 95, Windows 98

Windows NT 4.0

1.2 Windows Me N/A
2.0 Windows XP RTM, SP1

Windows 2000 SP3, SP4 Windows Server 2003 RTM

Windows 9x

Windows NT 4.0 Windows 2000

3.0 Windows XP SP2 Windows 2000

Windows XP Windows Server 2003

3.1 Windows XP SP3

Windows Server 2003 SP1, SP2 Windows XP Professional x64 Edition

Windows 2000

Windows XP Windows Server 2003

4.0 Windows Vista RTM, SP1

Windows Server 2008 RTM

N/A
4.5[10] Windows Vista SP2

Windows Server 2008 SP2

Windows XP

Windows Server 2003 Windows XP Professional x64 Edition Windows Vista Windows Server 2008[9]

5.0 Windows 7 dan setelahnya

Windows Server 2008 R2 dan setelahnya

N/A

Referensi sunting

  1. ^ "when setup isn't just xcopy : Inside the MSI file format". web.archive.org. 2009-01-15. Archived from the original on 2009-01-15. Diakses tanggal 2022-02-07. 
  2. ^ "when setup isn't just xcopy : The story of Orca". web.archive.org. 2008-12-23. Archived from the original on 2010-02-09. Diakses tanggal 2022-02-07. 
  3. ^ kexugit. "Windows Installer, The .NET Framework, The Bootstrapper, and You". docs.microsoft.com (dalam bahasa Inggris). Diakses tanggal 2022-02-07. 
  4. ^ "Identifying Windows Installer File Types". Visual Studio Setup (dalam bahasa Inggris). 2006-02-27. Diakses tanggal 2022-02-07. 
  5. ^ drewbatgit. "Windows Installer Components - Win32 apps". docs.microsoft.com (dalam bahasa Inggris). Diakses tanggal 2022-02-07. 
  6. ^ "Visual Studio setup projects (vdproj) will not ship with future versions of VS". Buck Hodges (dalam bahasa Inggris). 2011-03-17. Diakses tanggal 2022-02-07. 
  7. ^ "Visual Studio Installer Projects Extension". Visual Studio Blog (dalam bahasa Inggris). 2014-04-17. Diakses tanggal 2022-02-07. 
  8. ^ drewbatgit. "Internal Consistency Evaluators - ICEs - Win32 apps". docs.microsoft.com (dalam bahasa Inggris). Diakses tanggal 2022-02-07. 
  9. ^ a b drewbatgit. "Released Versions of Windows Installer - Win32 apps". docs.microsoft.com (dalam bahasa Inggris). Diakses tanggal 2022-02-07. 
  10. ^ "What's New in Windows Installer 4.5 (Windows)". docs.microsoft.com (dalam bahasa Inggris). Diakses tanggal 2022-02-07.