При установке Wix для моего служебного приложения я столкнулся с такой проблемой - когда я выбираю вариант «восстановить», после установки мне предлагается перезагрузить мой компьютер. На самом деле моя тестовая установка содержит только два файла. Хотя есть атрибуты, которые заставляют установщик остановить службу (и он фактически останавливает и удаляет службу из-за журнала), файлы все еще заняты процессом службы . Что я делаю неправильно? Есть ли обходные пути? Как в этом случае избавиться от запроса на перезагрузку? вот код установщика:
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="AGENTFOLD">
<Component Id="WindowsAgent" Guid="*">
<File Id="WinAgent" KeyPath="yes" Source="WindowsAgent.exe"/>
<ServiceInstall Id='WindowsAgentInst' Name='WindowsAgent' DisplayName='WindowsAgent' Type='ownProcess' Account='LocalSystem' Start='auto' ErrorControl='normal'/>
<ServiceControl Id="WindowsAgentControl" Name="WindowsAgent" Stop="both" Start="install" Remove="uninstall" Wait="yes" />
</Component>
<Component Id="cmp2" Guid="GUIDHERE">
<File Id="fil2" KeyPath="yes" Source="mydll.dll" />
</Component>
</ComponentGroup>
</Fragment>
вот что говорит журнал:
Информация 1603. Файл C: \ Program Files (x86) \ WindowsAgent \ mydll.dll используется. Закройте это приложение и повторите попытку.
MSI (s) (88:78) [17: 01: 50: 993]: Продукт: Setuptest. Файл C: \ Program Files (x86) \ WindowsAgent \ mydll.dll используется следующим процессом: Имя: WindowsAgent, Id 3384.
Информация 1603. Файл C: \ Program Files (x86) \ WindowsAgent \ WindowsAgent.exe используется. Закройте это приложение и повторите попытку.
MSI (s) (88:78) [17: 01: 51: 182]: Продукт: Setuptest. Файл C: \ Program Files (x86) \ WindowsAgent \ WindowsAgent.exe используется следующим процессом: Имя: WindowsAgent, Id 3384.
Обратите внимание: если я остановлю обслуживание вручную перед ремонтом, все будет работать нормально.