Pertanyaan Bagaimana cara interaktif menginstal msi diam-diam? (Kemajuan data dan batalkan)


Untuk beberapa alasan, kami mengirimkan produk dengan instalasi GUI kami sendiri, itu berarti, kami akan menjalankan instalasi MSI diam-diam latar belakang.

Dengan menggunakan MSI API "MsiInstallProduct", saya dapat menginstal produk secara diam-diam, tetapi saya tidak tahu bagaimana saya bisa mendapatkan data perkembangan instalasi ini dan bagaimana saya bisa membatalkannya.

Ada yang punya ide?


5
2017-11-02 07:50


asal


Jawaban:


Berikut ini contoh proyek yang tampaknya melakukan apa yang Anda maksud: http://www.codeproject.com/KB/cs/msiinterop.aspx


5
2017-11-02 18:10



PERBARUI Juni 2018: Meskipun alat yang ditunjukkan di bawah ini tidak lagi tersedia untuk diunduh, saya menemukannya melalui mesin Wayback. Saya berasumsi tidak apa-apa dan legal untuk menautkannya, mengingat alat itu freeware. Tautan yang diperbarui di bawah ini.

MEMPERBARUI: Alat dari Wise ini sayangnya tidak dapat diunduh lagi. Saya tidak yakin apakah itu OK untuk mendistribusikannya juga. Sepertinya ini adalah alat gratis yang didistribusikan sebagai bagian dari paket Paket Studio Utama mereka, tetapi saya tidak berpikir itu adalah open source. Saya berharap mereka akan merilisnya sebagai alat open source.

Produk kemasan Bijak telah dihentikan karena sejumlah masalah hukum.


Saya yakin Anda bisa mendapatkan kemajuan melalui MSI API, tetapi jika saya adalah Anda, saya hanya akan menunjukkan bilah kemajuan dari MSI itu sendiri setelah menjalankan pemasangan melalui msiexec.exe.

MSI mendukung beberapa level instalasi yang berbeda (penuh, benar-benar senyap, dasar GUI, mengurangi GUI, dll ...). Dalam kasus Anda sepertinya Anda menginginkan UI dasar. Ini menghasilkan bilah kemajuan tempat Anda dapat menyembunyikan tombol batal, dan secara opsional menampilkan dialog modal penyelesaian:

Instal secara diam-diam dengan bilah kemajuan, tidak ada tombol batal, dan tidak ada dialog modal di bagian akhir:

msiexec.exe /I "Test.msi" /QB-!

Untuk menghindari keharusan membuat baris perintah msiexec yang konyol ini secara manual, gunakan alat pembuat baris perintah MSI dari Wise: http://www2.wise.com/filelib/WICLB.exe (dibangkitkan dari mesin Wayback).

Silakan jalankan unduhan oleh virustotal.com untuk keamanan.

enter image description here


Terkait:


7
2017-11-02 08:02



Anda perlu menentukan handler UI eksternal menggunakan MsiSetExternalUI atau MsiSetExternalUIRecord sebelum MsiInstallProduct (yang terakhir lebih bagus, tetapi memiliki persyaratan versi MSI yang lebih tinggi). Fungsi yang Anda tentukan akan dipanggil untuk setiap pesan yang ingin Anda proses oleh Windows Installer. Ini akan memberi Anda data, dan kesempatan untuk menanggapi memberitahukannya untuk dibatalkan. Jika Anda memerlukan MSI 4.5 atau yang lebih baru, Anda dapat menggunakan pengatur UI eksternal tertanam DLL, yang tidak memerlukan bootstrap.


3
2017-11-02 15:09