Наша установка WIX устанавливает службу Windows после запроса учетной записи входа в систему через пользовательский интерфейс.
Служба запускается после успешной установки.
Вся установка требует повышенных привилегий.
Надеемся на любые указатели относительно пары вопросов:
Вопрос 1
При попытке «Восстановить» из «Установка и удаление программ» UAC запрашивает повышение привилегий. После разрешения ремонта все равно происходит сбой с сообщением:
«Служба не может быть установлена. Убедитесь, что у вас достаточно прав для установки системных служб».
Вот выдержка из кода:
...
Привилегированный
...
<Component Id="C_ServiceEXE" Guid="{105F9C86-BF07-43C8-8C78-DF30F012CD68}">
<File Id="$(var.TargetFileName)" Name="$(var.TargetFileName)" KeyPath="yes" Assembly=".net"
AssemblyManifest="$(var.TargetFileName)" AssemblyApplication="$(var.TargetFileName)" DiskId="1"
Source="$(var.TargetDir)\$(var.TargetFileName)" />
<Condition>Privileged</Condition>
<ServiceInstall Id="Id_ServiceInstall"
Name ="$(var.ServiceName)"
Description="$(var.ServiceDescription)"
DisplayName="$(var.ServiceName)"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
Start="auto"
ErrorControl="normal"
Type="ownProcess"
Vital="yes"
Interactive="no"
/>
<ServiceControl Id="Id_ServiceControl"
Name ="$(var.ServiceName)"
Remove="uninstall"
Start="install"
Stop="both"
Wait="yes"
/>
</Component>
...
Я не совсем уверен, почему это происходит, так как я нахожусь с админом на моем Win7 dev box и пометил как установочный, так и конкретно компонент установки службы для запуска в привилегированном режиме.
Я подозреваю, что мне может не хватать планирования восстановления в последовательности AdminInstallExecute, но я не совсем уверен, исправит ли это это.
Вопрос 2
Кроме того, связанный с этим вопрос - если восстановление завершится успешно, потребуется ли пользователю снова войти в учетную запись через пользовательский интерфейс.
Я бы предпочел отключить все интерактивные интерфейсы во время ремонта или обновления. Я понимаю, что UPGRADINGPRODUCTCODE для обнаружения обновления.
Но как определяется ремонт?
Ценю любую помощь или указатели.