Как к интерактивному тихо установка msi? (Данные прогресса и отмена это)

Проблема с TypeMock состоит в том, что он извиняет плохой дизайн. Теперь, я знаю, что это часто чужой плохой дизайн, который это скрывает, но разрешает, чтобы это в Ваш процесс разработки могло привести очень легко к разрешению Ваших собственных плохих проектов.

я думаю, собираетесь ли Вы использовать платформу насмешки, необходимо использовать традиционный (как Moq) и создать слой изоляции вокруг unmockable вещи и дразнить слой изоляции вместо этого.

5
задан Stein Åsmul 3 August 2014 в 15:16
поделиться

3 ответа

Вот пример проекта, который, похоже, выполняет то, о чем вы говорите: http://www.codeproject.com/KB/cs/msiinterop.aspx

5
ответ дан 18 December 2019 в 11:58
поделиться

UPDATE June 2018: Although the tool shown below is no longer available for download, I found it via Wayback machine. I assume it is OK and legal to link to it, seeing as the tool was freeware. Updated links below.

UPDATE: This tool from Wise is regrettably not downloadable anymore. I am not sure if it is OK to distribute it either. It seemed to be a free tool distributed as part of their main Wise Package Studio suite, but I don't think it is open source. I wish they would release it as an open source tool.

The Wise packaging products have been discontinued due to a number of legal issues.


I believe you can get the progress via the MSI API, but if I were you I would just show the progress bar from the MSI itself after invoking the install via msiexec.exe.

MSI supports several different installation levels (full, completely silent, basic GUI, reduced GUI etc...). In your case it sounds like you want a basic UI. This yields a progress bar where you can hide the cancel button, and optionally show a completion modal dialog:

Install silently with progress bar, no cancel button and no modal dialog at end:

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

To avoid having to construct these silly msiexec command lines manually, use the msi command line builder tool from Wise: http://www2.wise.com/filelib/WICLB.exe (resurrected from Wayback machine).

Please run the download by virustotal.com for safety.

enter image description here


Related:

7
ответ дан 18 December 2019 в 11:58
поделиться

Вам необходимо указать внешний обработчик пользовательского интерфейса с помощью MsiSetExternalUI или MsiSetExternalUIRecord перед MsiInstallProduct (последний лучше, но требует более высоких требований к версии MSI). Указанная вами функция будет вызываться для каждого сообщения, которое установщик Windows хочет обработать. Это даст вам данные и возможность ответить и сказать об отмене. Если вам требуется MSI 4.5 или более поздняя версия, вы можете использовать встроенную DLL-обработчик внешнего пользовательского интерфейса, которая не требует начальной загрузки.

3
ответ дан 18 December 2019 в 11:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: