UPDATE, Juli 2018 : Ringkasan yang sangat padat dari informasi di bawah ini tersedia di stackoverflow: Manfaat Utama MSI ( "executive summary"
- semacam).
Saya telah bekerja dalam pengembangan sebagai manajer rilis , insinyur bangunan , pengembang pengaturan dan sebagai pembuat paket aplikasi dan insinyur penempatan di perusahaan besar.
Ini adalah ulasan fitur MSI konseptual dan dunia nyata (dan terburuk) terbaik . Masalah desain yang paling umum ditemukan dalam file MSI disajikan sebagai jawaban terpisah di bawah ini . Tidak berpura-pura lengkap - benar-benar hanya "tempat sampah otak" yang berantakan - dimaksudkan sebagai "barang yang tidak dapat ditemukan di buku" (mungkin karena alasan yang baik).
Saya juga ingin menyarankan artikel MSDN ini sebagai bacaan yang bagus: Pemasang Windows: Manfaat dan Implementasi untuk Administrator Sistem .
Standardisasi:
Singkatnya, MSI adalah tentang standardisasi, dan tentang berurusan dengan " bau penyebaran " dari teknologi installer warisan. Seluruh koleksi desain arsitektur instalasi yang buruk yang menyebabkan masalah penyebaran berulang.
Secara keseluruhan MSI menyediakan kerangka kerja yang komprehensif dan terstandarisasi untuk installer, yang pada dasarnya juga mencakup fitur uninstall dan built-in dan opsi untuk silent running dengan GUI standar yang dapat dipicu dari jarak jauh .
Fitur-fitur ini sendiri merupakan peningkatan besar-besaran dari teknologi instalasi sebelumnya yang memperlakukan pencopotan pemasangan dan diam berjalan secara serampangan - mungkin fitur yang paling penting untuk penyebaran perusahaan bersama dengan manajemen paket jarak jauh yang dapat diandalkan melalui Active Directory atau alat administrasi jarak jauh khusus seperti Microsoft SCCM (sebelumnya SMS), IBM Tivoli , CA Unicenter, dan sejenisnya.
Seseorang menduplikasi versi sebelumnya dari jawaban ini . Mungkin membaca lebih cepat?
Pemasang Lama "Deployment Smells"
MSI secara aktif mencegah penyebaran bau oleh desain. Topik-topik ini dibahas di bagian selanjutnya di bawah ini, tetapi sebagai daftar cepat masalah yang paling dikenal dengan installer lama dan teknologi penyebaran yang lebih lama adalah:
- 1) mereka terkadang menurunkan dan menimpa file yang dibagikan dan versi dengan sedikit perhatian terhadap dll-neraka yang dihasilkan
- 2) sering kali tidak ada rutinitas pencopotan yang disertakan dengan penginstal, atau tidak lengkap dan andal - terutama jika dijalankan secara diam-diam. Ini adalah masalah yang sangat besar bagi manajemen BUMN
- 3) instalasi diam jarang didukung dengan benar. Keandalannya buruk, dan sering kali orang harus merekam proses instalasi dengan pilihan dialog dan ini tidak sesuai dengan kondisi yang tidak terduga seperti dialog kesalahan atau dialog peringatan yang tidak direkam dalam proses asli
- 4) installer tidak mencatat apa yang telah diinstal dan karenanya tidak ada cara otomatis untuk memverifikasi file pada disk untuk memeriksa apakah masih ada versi yang diinstal pada awalnya oleh installer
- 5) mereka menampilkan parameter baris perintah yang tidak dapat diprediksi, tidak dapat diandalkan dan tidak standar untuk instalasi yang dapat dieksekusi
- 6) mengikuti dari baris perintah yang tidak standar dan kurangnya standar, sulit untuk menyesuaikan installer dengan nilai-nilai spesifik yang diperlukan untuk penyebaran perusahaan dengan cara yang dapat diandalkan dan dapat diprediksi.
- 7) pengguna normal tidak dapat menjalankan instalasi ini, dan orang sering harus dipusingkan dengan hak admin sementara (gunakan "jalankan sebagai" jika itu cukup, atau login sebagai admin, instal dan kemudian logout - ini login penuh dan pembuatan profil kadang-kadang diperlukan untuk menginstal untuk menyelesaikan)
- 8) yang setup.exe installer akan sering tidak mengembalikan kode kesalahan yang tepat atau kode sukses, dan kadang-kadang akan keluar segera dan tendangan dari proses lain yang akan menyelesaikan instalasi sehingga sulit untuk menentukan apakah install selesai - terutama melalui batch mengajukan
- 9) sebagian besar file setup.exe memungkinkan file untuk diekstraksi, tetapi tidak dengan cara yang dapat diandalkan dan dapat diprediksi - Anda biasanya harus menghabiskan banyak waktu mencari switch yang tepat untuk menyelesaikannya
- 10) penebangan pada umumnya buruk dan agak serampangan di beberapa alat. Debugging dengan file log jarang menghasilkan kejelasan, tetapi sedikit membantu
- 11) tidak ada transparansi dalam apa yang dilakukan penginstal dan tidak ada atau tidak dapat dikembalikan untuk membatalkan perubahan setelah instalasi gagal
- 12) ada ada cara standar industri dari penggelaran komponen runtime bersama apakah mereka beroperasi komponen sistem, komponen pihak ketiga atau Anda sendiri
Daftar ini berlanjut dengan banyak kelemahan penyebaran penting dan diakui lainnya . Jelas dalam dunia penyebaran perusahaan bahwa masalah ini muncul paling sering, dan telah menghasilkan bisnis " pengemasan ulang aplikasi " di mana penginstal lama ditangkap dengan teknologi pemindaian disk dan registri untuk membuat file MSI yang sesuai standar. untuk penyebaran yang andal.
Pengemasan ulang aplikasi adalah pekerjaan spesialis dan umumnya menghasilkan file MSI berkualitas tinggi jika dilakukan dengan benar oleh orang yang berpengetahuan, tetapi tidak mungkin untuk mengemas kembali semua aplikasi karena logika registrasi yang kompleks yang harus dijalankan secara interaktif agar aplikasi tertentu dapat bekerja.
Manfaat MSI - Ringkasan Pendek
Dalam bahasa sederhana , manfaat MSI yang sangat penting adalah (tanpa urutan tertentu):
- 1) uninstall selalu tersedia untuk setiap paket kecuali dinonaktifkan secara aktif
- 2) ini sama untuk logging , yang bagus dan terstandarisasi, meskipun verbose (alat seperti WiLogUtl.exe dapat digunakan untuk menganalisis file log)
- 3) apa yang dilakukan oleh file MSI (semi-) transparan atau "dapat diperiksa" untuk sebagian besar. Pengecualiannya adalah tindakan khusus - (lihat bagian transparansi di bawah)
- 4) pengaturan kustomisasi dilakukan dengan cara standar ( transformasi )
- 5) tidak perlu dipusingkan dengan hak admin sementara karena penginstalan berjalan meningkat melalui iklan Direktori Aktif, kebijakan grup, atau administrasi jarak jauh. Beberapa kualifikasi di sini. Lihat juga cuplikan layar ini dari editor objek kebijakan grup.
- 6) diam menginstal / menghapus instalan melalui alat manajemen atau menggunakan msiexec.exe berfungsi dengan baik
- 7) ada dukungan rollback penuh untuk instalasi yang gagal. Jika Anda menginstal secara manual pada kotak ada beberapa kualifikasi yang perlu Anda ketahui.
- 8) file MSI cocok untuk inspeksi dan validasi untuk konsistensi dan validitas logis karena mereka sesuai dengan skema database ( lihat contoh validasi )
- 9) pembaruan adalah tipe standar, meskipun rumit dan sering rawan kesalahan untuk paket yang tidak berpengalaman
- 10) yang ekstraksi file dari MSI adalah fitur built-in (cek artikel terkait untuk gambaran singkat yang baik)
- 11) baris perintah Penginstal Windows, msiexec.exe , fitur kontrol berbutir sangat baik tentang bagaimana urutan instalasi harus dilakukan, dan semua opsi bekerja dengan semua standar file MSI yang sesuai (set level log, jalankan secara diam-diam / interaktif / semi-diam) , atur parameter instalasi, terapkan transformasi dll ...).
- 12) menggabungkan modul adalah mekanisme MSI untuk mengirimkan file bersama dengan beberapa paket MSI. Ini adalah modul yang dapat dikonsumsi atau kumpulan logika instalasi yang dapat digabung dengan paket MSI apa pun pada waktu kompilasi. Wix telah memperluas dan meningkatkan konsep ini dengan penggunaan file-file Wix termasuk - sebuah konsep yang menurut saya lebih unggul untuk menggabungkan modul - terutama untuk file Anda sendiri (yaitu bukan file OS)
- 13) mesin penginstal windows itu sendiri memiliki mekanisme untuk mencegah overwriting file berversi atau modifikasi saat instalasi. Ini dikendalikan oleh logika penggantian file yang agak rumit . Meskipun efisien dan bagus, logikanya dapat menjadi masalah karena banyak pengembang menghadapi masalah karena tidak dapat menimpa file konfigurasi yang dimodifikasi ketika melakukan peningkatan. Solusi untuk masalah-masalah ini umumnya perubahan kecil dalam desain aplikasi untuk menghindari penyebaran anti-pola umum - meskipun itu adalah diskusi besar sendiri.
Di dunia nyata saya telah menemukan aspek - aspek yang kurang berhasil untuk memasukkan tambalan (sangat kompleks), MSI-GUI (fitur sederhana, cukup kompleks, kurang fleksibel), ketahanan (dapat menyebabkan sulitnya men-debug masalah pengulangan perbaikan sendiri ), dan kompleksitas keseluruhan berurusan dengan teknologi untuk pemula (kompleksitas operasi dasar yang tinggi di waktu - misalnya upgrade, GUI dan banyak detail yang berinteraksi menyebabkan hasil yang tidak terduga, dll ...). Kecepatan proses instalasi juga melambat karena peningkatan overhead MSI. Lihat beberapa tips untuk meningkatkan kecepatan instalasi MSI .
Sisa dari teks ini membahas beberapa aspek MSI ini secara lebih rinci.
Transparansi (format pemasang terbuka)
File MSI pada dasarnya adalah database SQL-Server yang dipreteli yang disimpan sebagai file penyimpanan berstruktur COM - pada dasarnya sistem file dalam file atau kumpulan aliran data. Ini adalah tipe file yang digunakan dalam dokumen Microsoft Office , dan menghasilkan format standar yang dapat ditinjau dan diperiksa - masalah besar bagi perusahaan besar.
Dengan pengecualian tindakan khusus yang dikompilasi, file MSI adalah kotak putih . Jika pengaturan mengubah sesuatu yang gila seperti pengaturan jaringan di seluruh sistem, Anda dapat melihatnya menggunakan alat yang sesuai . Pengecualian penting dikompilasi tindakan kustom - yang merupakan kotak hitam . Persyaratan logo Windows memerlukan tindakan khusus untuk dijelaskan untuk menjelaskan apa yang mereka lakukan, tetapi ini sering diabaikan oleh pengembang penyiapan. Semoga munculnya Wix akan meningkatkan ini.
Untuk menentukan apa yang dilakukan tindakan kustom terkompilasi tersebut dalam arti teknis, tangkapan setup diperlukan. Ini hampir tidak pernah dilakukan dalam pengalaman saya. Lebih umum untuk menghubungi vendor untuk mendapatkan informasi jika perangkat lunak memerlukan persetujuan untuk penerapan perusahaan, dan mungkin itu adalah aplikasi itu sendiri yang mencegah penggunaannya, dan bukan hanya pengaturan.
Kemampuan penyesuaian (transformasi)
MSI dapat dikustomisasi melalui transformasi agar sesuai dengan kebutuhan dan standar organisasi sementara masih memungkinkan interoperabilitas dengan pembaruan pemasang vendor. Anda tidak mengubah pemasang itu sendiri, Anda membuat kustomisasi dalam file terpisah, khusus organisasi yang disebut transform (.mst file) (fragmen basis data atau ubah transaksi jika Anda mau). Anda bebas untuk menonaktifkan tindakan khusus dan secara umum mengubah, menimpa, atau menonaktifkan apa pun di penginstal, dan Anda bahkan dapat menambahkan hal-hal baru, termasuk file. File transformasi juga kadang-kadang digunakan untuk melokalkan file MSI ke berbagai bahasa. Beberapa transformasi dapat diterapkan ke satu MSI, di sini adalah sampel dengan jalur terpotong :
msiexec.exe /I "My.msi" /QN /L*V "C:\My.log" TRANSFORMS="C:\1031.mst;C:\My.mst"
Penjelasan Parameter Cepat:
/QN = run completely silently
/L*V "C:\My.log"= verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst.
Manajemen dan pelaporan
Pemasang Windows memiliki basis data komprehensif untuk semua item yang telah dipasang produk dalam registri ( HKEY_CLASSES_ROOT \ Installer - jangan pernah mengubah apa pun di sini secara langsung! Itu juga berlaku untuk para ahli).
Anda dapat menentukan apakah suatu produk diinstal, fitur apa yang diinstal, dan versi file apa yang diinstal. Selain itu, Anda bisa mendapatkan daftar tambalan apa pun yang telah diterapkan pada produk dasar, jika ada. Anda dapat mengakses database ini melalui Win32, COM atau .NET yang mendukung API menggunakan berbagai skrip, konfigurasi, dan alat admin seperti Microsoft SCCM , IBM Tivoli , CA Unicenter dll ...
Keamanan (hak tinggi sementara)
MSI juga mencakup prinsip "hak tinggi" yang memungkinkan pengguna terbatas untuk memicu pemasangan produk yang memerlukan hak admin untuk menginstal. Ini adalah bagian dari " fitur iklan " yang memungkinkan administrator membuat installer tersedia untuk pengguna tanpa benar-benar menginstalnya di semua workstation. Pemasang itu sendiri harus dikarang dengan benar pada beberapa akun inti agar konsep hak tinggi ini berfungsi dengan benar. Pengguna dapat memicu pemasangan produk sendiri, atau pemasangan mungkin dikendalikan oleh sistem penyebaran khusus seperti SCCM, Tivoli, Unicenter (biasanya perusahaan besar). Tidak perlu dipusingkan dengan hak admin sementara untuk membuat semuanya berfungsi yang sering terjadi dengan installer lama.
Basis data instalasi yang komprehensif juga memastikan bahwa Anda memiliki gambaran lengkap tambalan yang diinstal dan karenanya kemungkinan untuk mendeteksi kerentanan keamanan melalui otomatisasi dan alat admin.
Validasi
File MSI dapat diperiksa dengan aturan validasi untuk memastikannya sesuai dengan sejumlah aturan konsistensi internal (disebut sebagai ICE). Perusahaan dapat membuat cek ICE mereka sendiri untuk menegakkan aturan dan persyaratan perusahaan khusus. Ini sangat membantu dengan QA. Alasan validasi dimungkinkan adalah karena sifat referensi diri dari database relasional dan skema database terkait. Basis data harus konsisten secara internal dan sesuai dengan skema sendiri terkait dengan kunci asing, tipe data, lebar bidang, versi skema, dll. Validasi juga melampaui ini dan mampu mendeteksi cacat logis asli dan kesalahan dalam paket. , tidak hanya memformat dan mengetikkan kekurangan. Misalnya dapat mendeteksi file atau tipe file yang sedang digunakan untuk tujuan yang salah sasaran.
Ketahanan (Perbaikan sendiri)
Fitur instalasi admin Windows installer menyediakan cara standar untuk mengekstrak file sumber dari MSI ( berikut adalah beberapa informasi tambahan tentang topik ini ). File-file sumber ini kemudian dapat dibagikan dan tersedia untuk semua workstation untuk instalasi. Ini memastikan perbaikan, penghapusan instalasi dan modifikasi operasi selesai tanpa meminta media instalasi pada CD atau sejenisnya. Ini sangat penting untuk menambal dan memperbarui operasi yang mungkin memerlukan akses ke file sumber versi lama dalam keadaan khusus.
Ada juga masalah umum dengan fitur ketahanan ini. Sebagian besar administrator mengalami mesin dengan siklus perbaikan-diri siklus yang sepertinya tidak pernah berhenti. Ikuti tautan untuk daftar panjang penyebab masalah ini. Dan lagi, ini adalah versi yang lebih pendek yang mungkin lebih mudah dibaca.
Kembalikan
Instalasi file MSI biasanya akan memicu pembuatan titik pemulihan . Selanjutnya semua file dan item registri diganti atau ditimpa selama instalasi akan disimpan dan dikembalikan jika instalasi gagal untuk menyelesaikan, kecuali perubahan yang dilakukan dalam tindakan kustom.
Tindakan khusus harus menerapkan dukungan rollback mereka sendiri untuk kepatuhan logo Windows. Ini sering diabaikan, tetapi melibatkan pembuatan tindakan khusus kedua untuk membatalkan perubahan yang dibuat oleh tindakan khusus utama.
Rollback memastikan bahwa workstation dibiarkan dalam keadaan stabil bahkan jika instalasi gagal. The Script rollback yang sebenarnya disimpan dalam folder tersembunyi langsung pada sistem drive - umumnya C: \ Config.MSI , dan berisi file dengan ekstensi .RBS dan .RBF - Rollback Script Files . Seperti yang Anda harapkan file MSI yang dirancang dengan buruk dapat melanggar fitur bawaan Windows di sini, lihat posting saya yang lain di utas ini untuk lebih jelasnya.
Ada beberapa cara untuk menonaktifkan rollback dan mempercepat pemasangan. Umumnya tidak disarankan, tetapi di sini ada detail tentang properti MSIFASTINSTALL dan DISABLEROLLBACK . Ini adalah fitur yang rumit, tetapi di sini adalah ikhtisar rollback cepat .
Penambalan & Pembaruan
Meskipun sangat kompleks, menambal dalam installer Windows sepenuhnya dikelola dan terdaftar pada sistem sehingga keadaan keamanan sistem dapat ditentukan dengan memeriksa apa yang telah diinstal. Pembaruan distandarisasi untuk beberapa varian dasar, dan ini memungkinkan pembaruan dilakukan dengan tingkat kepastian yang lebih tinggi asalkan Anda dapat menangani kompleksitas yang terlibat. Sistem penempatan akan dapat melaporkan pembaruan apa yang gagal dan mengapa.
Dalam pandangan subyektif, penambalan berfungsi dengan baik untuk 2 penggunaan dasar : 1 ) perbaikan terbaru kecil untuk produk yang dikirim, dan 2 ) menambal produk yang dipasang untuk memperbaiki urutan pemasangan yang salah yang mencegah penghapusan pembersihan produk.
Patch hanyalah mekanisme pengiriman untuk pembaruan yang sudah berfungsi . Karena itu hanya sebuah wadah yang lebih rumit dan rawan kesalahan daripada pengaturan asli itu sendiri. Aturan nomor satu untuk suatu tambalan adalah ia harus lebih kecil dari MSI asli atau tidak ada alasan yang jelas untuk mengirimkan tambalan sama sekali. Sebuah tambalan bisa menjadi besar dengan cepat jika menargetkan beberapa versi produk.
Logging (memang verbose)
Windows Installer menyediakan fitur logging standar yang jauh lebih unggul dari inkarnasi sebelumnya, meskipun hampir terlalu banyak bertele-tele. File log dapat diuraikan menggunakan penganalisis log , dan level log kustom dapat digunakan untuk menghilangkan pembuatan file log terlalu besar dengan informasi yang tidak perlu. Untuk keperluan debugging, logging verbose sangat berguna. Lihat blog Rob Mensching untuk cara manual yang baik untuk membaca file log MSI (pada dasarnya Anda mencari " nilai 3 " dalam file log). Berikut adalah contoh perintah baris yang melakukan logging verbose:
msiexec.exe /I "C:\Installer.msi" /QN /L*V "C:\msilog.log"
Artikel ini dari Robert Macdonald dari Tim Pemasang Windows sangat direkomendasikan sebagai tampilan praktis pada log MSI: Cara Menafsirkan Log Pemasang Windows .
Kesimpulan
Tidak semuanya baik tentang Penginstal Windows . Its kompleksitas dapat membingungkan di kali, tapi untuk perusahaan besar file MSI yang jauh lebih unggul dengan bentuk lain dari penyebaran ketika Anda memperhitungkan daftar manfaat di atas.
Paradigma installer baru (pernyataan SQL besar)
Untuk memahami " paradigma " baru, penting untuk memahami bahwa MSI dimaksudkan sebagai deskripsi deklaratif tentang apa yang akan terjadi pada sistem target, daripada urutan kejadian yang pasti. Saya kira Anda bisa menganggapnya sebagai pernyataan SQL besar . Misalnya Anda mendeklarasikan item yang ingin Anda tambahkan atau modifikasi ke file INI. Saat instalasi berjalan, perubahan dilacak dan rollback tersedia sehingga perubahan dapat dikembalikan jika instalasi gagal. Ini benar-benar berfungsi seperti " automagic ", dan dapat diandalkan jika dilakukan dengan benar.
Tindakan Kustom (tersangka biasa)
Ini adalah sakit kepala besar bagi pengembang MSI berpengalaman untuk melihat orang-orang mengandalkan tindakan kustom yang kompleks dan tidak dapat diandalkan untuk fungsionalitas yang lebih baik diimplementasikan dengan fitur MSI bawaan. Bagian signifikan dari semua kesalahan MSI dan masalah rollback disebabkan oleh tindakan kustom yang salah, dan sebagian besar kesalahan lainnya disebabkan oleh penggunaan yang salah dari desain MSI (lihat jawaban terpisah untuk daftar kesalahan MSI umum).
Selain fitur MSI bawaan, semakin banyak fungsi kustom kini tersedia melalui kerangka kerja baru seperti Wix - cara XML untuk mengkompilasi file MSI, sehingga semakin sedikit kebutuhan akan logika tindakan khusus yang kompleks untuk sebagian besar operasi.
MSI fitur dukungan penuh untuk menangani penggabungan pengaturan file ini, font, variabel lingkungan, kunci registri, informasi COM, pintasan, ekstensi file, kondisi peluncuran, instalasi GAC, ODBC, dll ...
WIX melangkah lebih jauh dengan dukungan untuk fitur - fitur yang sangat canggih seperti ekstensi SQL server, instalasi dan konfigurasi IIS, penghitung kinerja, pengecekan DirectX dan tugas-tugas yang terkait dengan game, .NET generasi gambar asli, COM +, driver, aturan firewall, ekstensi PowerShell, penutupan aplikasi, manajemen pengguna, grup, berbagi, dan banyak lagi. Agak terlibat untuk berurusan, tetapi jauh lebih dapat diandalkan daripada tindakan kustom Anda sendiri.
Hindari Tindakan Kustom Berapapun Biaya Jika Mungkin
Untuk mencoba untuk memasukkannya ke dalam perspektif: ini built-in dan solusi siap pakai yang dibuat oleh para ahli penyebaran terbaik yang tersedia , dan mereka diuji oleh ribuan, puluhan ribu atau bahkan jutaan pengguna (untuk built-in barang-barang di MSI diri). Apakah Anda benar-benar berpikir dapat melakukan tindakan kustom Anda sendiri dengan lebih baik? Menggunakan tindakan khusus harus menjadi peristiwa langka, dan harus benar-benar diperlukan untuk mencapai sesuatu yang unik untuk produk yang Anda instal . Dan Anda harus menulis dukungan rollback yang tepat juga, yang cukup terlibat.
Menulis tindakan khusus hampir selalu merupakan kesalahan , tetapi ada kasus asli ketika Anda benar-benar membutuhkan fleksibilitas juga. Seperti biasa, penting untuk memilih pertempuran Anda dengan baik. Ini mungkin tugas yang menyenangkan pada awalnya, tetapi Anda mungkin akan menghadapi banyak masalah tak terduga dan menghabiskan banyak waktu yang mahal. Maksud saya ini sangat serius. Saya telah menulis serangkaian tindakan khusus C ++ untuk penggunaan korporat sendiri (untuk menghilangkan tindakan kustom VBScript yang rentan kesalahan) - ini bukan jalan di taman, dan meskipun pengkodean mungkin bukan yang paling sulit di dunia, debugging dan pengujian dan hookup ke file MSI yang sebenarnya sangat singkat. Beberapa waktu meneliti opsi siap pakai yang tersedia kemungkinan akan menghemat minggu kerja pengembangan, dan menghasilkan keandalan penyebaran yang jauh lebih besar.
Gunakan Urutan Peluncuran Aplikasi
Poin yang sangat penting adalah bahwa banyak konfigurasi aplikasi harus terjadi pada peluncuran aplikasi ketika Anda memiliki konteks runtime yang dapat diprediksi dan penanganan kesalahan yang baik tersedia, dan tidak dalam pengaturan yang hanya berjalan sekali dan fitur peniruan yang sangat rumit , pengurutan , pengkondisian dan runtime kompleksitas .
Pengaturan Anda tidak boleh mengonfigurasi aplikasi, itu harus menyiapkan aplikasi untuk konfigurasi pada peluncuran pertama . Khususnya pengaturan Anda harus menulis semua pengaturan yang memerlukan hak - hak tinggi - menulis ke HKLM, mendaftarkan layanan, menginstal ke jalur per-mesin dan segala hal yang aplikasi tidak dapat menulis sendiri dengan hak pengguna biasa.
Jika Anda seorang pengembang pengaturan, Anda harus menawarkan untuk terlibat mengode urutan peluncuran aplikasi alih-alih menulis tindakan kustom pengaturan . Jika tidak ada yang lain, untuk menghindari terlihat seperti Anda mencoba "memberikan tanggung jawab" kepada orang lain. Dalam urutan peluncuran ini Anda dapat menulis kode yang jauh lebih andal dan dapat diuji yang lebih mudah untuk mendapatkan bantuan dari personel QA untuk diuji (mereka sering tidak memahami pengujian penempatan serta pengujian aplikasi).
Kompleksitas Penataan
Inti dari kompleksitas pengaturan berpusat pada fakta bahwa kesalahan bersifat kumulatif (Anda mengelola proses pengiriman, bukan hanya kompilasi ulang cepat), kesalahan sangat sulit untuk di-debug (tidak ada akses ke sistem di mana kesalahan terjadi), dan sistem target negara berbeda dalam hampir setiap cara yang bisa dibayangkan . Silakan lihat jawaban ini untuk diskusi yang lebih menyeluruh tentang kompleksitas ini dan bagaimana sistem target dapat waspada dalam sejumlah cara yang mengejutkan: Pemasang Windows dan pembuatan WiX, dan Kompleksitas Penempatan (lihat di bagian bawah).
WiX (solusi MSI terbaik untuk beberapa tujuan)
Baca pengantar cepat WiX ini untuk deskripsi cara berbasis XML baru untuk mengkompilasi file MSI. File sumber berbasis teks memberikan kontrol sumber yang jauh lebih baik daripada sebelumnya. Ini adalah toolkit sumber terbuka gratis yang sangat dianjurkan .
NB : Lihat di bagian lain utasnya untuk mengetahui secara cepat masalah desain umum dengan file MSI - ini sangat tidak lengkap, tetapi harus layak dibaca. Saya tidak ingin menambahkan itu ke balasan ini karena tidak 100% terkait, tetapi untuk penggunaan di dunia nyata itu adalah topik penting.
Beberapa informasi inti MSI untuk sys-admin:
(maafkan "promosi" yang tidak tahu malu - itu untuk akses dan pengambilan yang mudah)
Berikut adalah beberapa tautan ke topik yang mungkin bermanfaat bagi administrator sistem dalam upaya mereka untuk mengendalikan penyebaran di jaringan mereka:
Topik panduan khusus:
Topik Konseptual / Praktik Terbaik: