Как да направя тихо инсталиране и деинсталиране с WiX и MSI?

Как може да се създаде безшумен инсталатор в WiX, който не показва никакви диалогови прозорци на потребителския интерфейс на потребителя и инсталира, надстройва и деинсталира с настройки по подразбиране?


person MX4399    schedule 24.05.2010    source източник


Отговори (4)


Просто не включвайте никакви UI/UIref елементи и тогава няма да бъде включен UI :)

person saschabeaumont    schedule 24.05.2010
comment
Това е с много ограничена стойност. Да накарате потребител да щракне два пъти върху MSI и той да се инсталира без никакво потвърждение или състояние на резултатите е много неоптимално потребителско изживяване IMO. Добре е, ако вашата част от група MSI се променя заедно от друга програма, обработваща потребителския интерфейс (Think Visual Studio, SQL Server..), но ако това е самостоятелен MSI, смятам, че това е само наполовина свършена работа. - person Christopher Painter; 31.05.2012
comment
Съгласен съм, че определено е с ограничена стойност, но отговаря на OP. По-добро (или правилно) решение е да използвате параметри на msiexec, както сте описали по-долу. - person saschabeaumont; 05.06.2012
comment
Използването на msiexec.exe с параметри на командния ред, указващи тих режим с no-ui, е правилният начин. - person nil; 11.02.2013
comment
@Кристофър Пейнтър. Инсталирането на всяко приложение в корпоративна среда на стотици машини изисква процеси като използване на групови правила. Наличието на потребителски интерфейс е неоптимално и загуба на време принуждава служителите да ходят и да натискат клавиши на ВСЯКА машина за компания, просто когато се изисква ново приложение. - person midspace; 05.03.2013
comment
Използвайте вече споменатия msiexec.exe /i foo.msi /qn. По този начин потребителският интерфейс се поддържа за отделни потребители и администратори за отстраняване на неизправности и може да бъде скрит за внедряване. - person midspace; 05.03.2013
comment
Използвам SCCM, за да изкарам инсталаторите до 100 000 машини наведнъж. Уверявам ви, че никой не обикаля, щракнете върху Напред. Но те могат, ако наистина имат нужда/искат. - person Christopher Painter; 05.03.2013
comment
Когато опитах това, потребителският интерфейс все още беше включен -- малък диалогов прозорец с лента за напредък. Трябваше да използвам 7zip, за да направя bootstrapper за разопаковане и изпълнение на MSI с /qn. - person Ed Bayiates; 28.06.2014

Windows Installer (MSI) използва следните аргументи на командния ред, за да бъде безшумен:

Безшумно инсталиране или тихо основно надграждане:

msiexec.exe /i foo.msi /qn

Безшумен малък ъпгрейд:

msiexec.exe /i foo.msi REINSTALL=ALL REINSTALLMODE=vomus /qn

Безшумно деинсталиране:

msiexec.exe /x foo.msi /qn

Изпълним път:

C:\Windows\system32\msiexec.exe
person Christopher Painter    schedule 24.05.2010
comment
Страхотен отговор. Лек проблем е, че ако трябва да разрешите инсталация чрез UAC диалогов прозорец, нито един не се представя чрез /qn. Въпреки това, ако използвате /qb, получавате опцията да го упълномощите. - person Steztric; 22.06.2015
comment
Това е функцията, както е проектирана. Безшумните инсталации по дефиниция са неинтерактивни и UAC подканата е взаимодействие. Ако не щракнете върху „да“ в рамките на 30 секунди, инсталирането ще се провали. Вашият процес на извикване трябва вече да е повишен преди извикване на инсталацията. - person Christopher Painter; 24.12.2015
comment
Аз също се сблъсквам със същия проблем, когато се опитах да стартирам MSI в режим на пълен потребителски интерфейс чрез двукратно щракване върху MSI, той ме подканва UAC (име на програмата, издател: неизвестен, произход на файла) и трябва да избера да, за да продължа с инсталация, но трябва да инсталирам MSI с помощта на командата cmd msiexec в неинтерактивен режим (по принцип трябва автоматично да приеме „да“ в UAC), но това не се случва в никакъв случай (/q /a /qn). Използвам инструмент за внедряване на MSI на 100 сървъра и той вътрешно създава команда (msiexec /i ‹MSI PATH› /qn), която води до повреда. Някой има ли решение за това? - person Vaibhav Jain; 30.08.2017

Инсталаторът .exe, създаден с WiX, може да се стартира от командния ред, без да се изисква въвеждане от потребителя, като се използва един от тези параметри на командния ред:

  • /quiet - Не показва никакъв UI
  • /passive - Показва потребителски интерфейс, но не изисква въвеждане от потребителя. По същество само показва лента за напредъка на инсталирането

Този отговор се основава на WiX 3.9.

person Kevin Kalitowski    schedule 16.07.2015
comment
Как да премина инсталационния път? - person kudlatiger; 01.03.2019

Всички MSI инсталатори, независимо дали са създадени от WiX или не, могат да се контролират чрез аргументи на командния ред. Така че можете да направите инсталатор с потребителски интерфейс и пак да го инсталирате тихо, няма нужда да премахвате потребителския интерфейс от инсталатора, просто го потиснете в командния ред. Не забравяйте, че се уверете, че сте добавили елемента за надграждане в първия си инсталатор, така че следващите да съвпадат

person Charles Gargent    schedule 25.05.2010
comment
Елементът за надстройка на WiX задава свойството UpgradeCode и е автор на ред в таблицата за надстройка. Технически първият MSI не трябва да има елемент за надграждане. Трябва само да има свойството UpgradeCode. Ако забравите да направите това, има трикове, които включват фалшив запис в таблицата за надграждане в следващите MSI с персонализирано действие, което задава свойството за действие на ProductCode на първия MSI. Опитайте се да избегнете това все пак. :-) - person Christopher Painter; 24.02.2014