Уточнение Wix: расширение близкого уровня, похоже, не работает

StackOverflow https://stackoverflow.com/questions/2977551

  •  24-10-2019
  •  | 
  •  

Вопрос

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

Согласно с этот пост форума, Похоже, что у Wix были проблемы с закрытием, минимизированные приложения в прошлом, поэтому мне интересно, связано ли это?

Любые предложения относительно того, что еще я могу сделать, чтобы убедиться, что процесс выключен? Есть ли способ, которым я могу попытаться запечатлеть сообщение в моем приложении, используя, возможно, API Win32?

Вот объявление о близких припадках:

<util:CloseApplication Id="CloseApp" CloseMessage="yes" Target="App.exe" RebootPrompt="yes" />

А вот индивидуальное действие:

<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>
Это было полезно?

Решение

Похоже, вы планируете WixCloseApplications Пользовательское действие перед установкой транзакции. То, как работает пользовательское действие, это запланировано отложенное действие, которое фактически закрывает приложения. Это не может выполнить эту работу, если это не произойдет во время транзакции (After="InstallInitialize").

Исправление, вероятно, довольно просто. Удалить Custom/@Action="WixCloseApplications" элемент.

Другие советы

Сначала не забудьте ссылаться Wixutilextension.dll сборка. Также проверьте, если Викс элемент содержит определение Utilextension Пространство имен:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

Я заметил, что вы должны изменить свое индивидуальное действие, чтобы быть выполненным перед установкой.

<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>

Если вы применяете эти изменения и расширение CloseApplication

msiexec /i MyApplication.msi /l*v MyLogFile.txt

Я также столкнулся с этой проблемой. Изменение атрибута до «InstallValidate» сработало для меня.

<Custom Before="InstallValidate" Action="WixCloseApplications"/>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top