В моей WiX я использую следующее заявление:Как я могу остановить .exe при восстановлении, обновлении и удалении в wix?
<ComponentGroup Id="BinComponents" Directory="BIN">
<Component Id="BinComponent" Guid="23D229D0-06EE-49f4-80B4-6D7136500721">
<File Id="MyProjectOutput" Name="MyProject.exe" Source="MyProject\bin\MyProject.exe"/>
<ServiceControl Id="RemoveService"
Stop="both"
Remove="both"
Name="MyProject.exe"
Wait="yes" /> <!-- Stop running MyProject instances -->
</Component>
</ComponentGroup>
Мои Repro:
На первом, я бегу мои установки, как обычно. После установки я запускаю свое веб-приложение. .exe появляется в диспетчере задач, как обычно:
Я хочу закончить этот exe-файл на ремонт, обновление или удаления. Поэтому я начинаю .msi снова и выбрать ремонт:
Теперь моя проблема: После нажатия кнопки «Восстановить», я ожидаю, что следующий диалог из-за объявленного ServiceControl
:
Но это не так. Вместо этого появляется следующее диалоговое окно:
При входе в установку, журнал содержит в себе следующие строки:
MSI (s) (A8:DC) [10:16:28:227]: Executing op: ActionStart(Name=StopServices,Description=Stopping services,Template=Service: [1])
Action 10:16:28: StopServices. Stopping services
MSI (s) (A8:DC) [10:16:28:228]: Executing op: ProgressTotal(Total=1,Type=1,ByteEquivalent=1300000)
MSI (s) (A8:DC) [10:16:28:228]: Executing op: ServiceControl(,Name=MyProject.exe,Action=2,Wait=1,)
MSI (s) (A8:DC) [10:16:28:228]: Executing op: ActionStart(Name=DeleteServices,Description=Deleting services,Template=Service: [1])
Action 10:16:28: DeleteServices. Deleting services
MSI (s) (A8:DC) [10:16:28:228]: Executing op: ProgressTotal(Total=1,Type=1,ByteEquivalent=1300000)
MSI (s) (A8:DC) [10:16:28:229]: Executing op: ServiceControl(,Name=MyProject.exe,Action=8,Wait=1,)
MSI (s) (A8:DC) [10:16:28:229]: Executing op: ActionStart(Name=InstallFiles,Description=Copying new files,Template=File:
[1], Directory: [9], Size: [6])
[...]
MSI (s) (7C:28) [09:06:21:950]: RESTART MANAGER: Did detect that a critical application holds file[s] in use, so a reboot will be necessary.
MSI (s) (7C:28) [09:06:21:950]: Note: 1: 1610
MSI (s) (7C:28) [09:06:21:950]: Note: 1: 2205 2: 3: Error
MSI (s) (7C:28) [09:06:21:950]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1610
Рядом с ремонта я также попробовал Update с такие же результаты. Возможно, какая-либо декларация отсутствует? Примечание. Когда я закрываю MyApp.exe в диспетчере задач, сообщение не появляется, поэтому MyApp.exe определенно несет ответственность за проблему.
Я проверил журнал. Нет записи о недостающем компоненте. Установленный гордость, кажется, не сломан. – Simon
С обновлением я получаю те же результаты. – Simon
Что касается вашего ответа «После того, как исправление того, что ремонт должен быть очень редок для замены файлов, поэтому, возможно, не стоит беспокоиться»: Как уже упоминалось, отсутствует недостающий компонент, и я должен беспокоиться. Администраторы, которые устанавливают программное обеспечение на своем Windows Server, не могут перезапустить свою машину. Они видят сообщение «... reboot required ...» и отменяют настройку и не покупают продукт. – Simon