Установка службы win32 с использованием MSBuild и Microsoft.Sdc.Tasks
Я пытаюсь установить службу Windows с помощью библиотеки Microsoft.Sdc.Tasks.
<ControlService Action="Install"
ServiceName="Service1"
User="XXX
Password="XXX"
ServiceExePath="$(DeployFolder)\XXX.exe"/>
Но меня постоянно просят ввести имя пользователя и пароль! Это не будет работать, так как я хотел бы иметь автоматическую сборку на сервере сборки. Я имею в виду, что пользователь и пароль, под которым я хочу запустить службу, находятся в фактической цели. Как мне получить его, чтобы установить службу, используя настроенные имя пользователя и пароль, а не запрашивать ее?
2 ответа
Нашел этот пост, и так как все, что делает мой сервис - это запись и чтение из локального файла, я должен нормально работать под учетной записью Local Service вместо определенного пользователя. Даже после обновления установщика службы для ControlService-target требуются имя пользователя и пароль, но тогда я фактически не запрашиваю у меня имя пользователя и пароль. Но тогда я не хочу запускать конкретного пользователя, и цель терпит неудачу, когда не предоставлено имя пользователя и пароль в конфигурации... Странно.
Я решил, выложив InstallUtil.exe вместо этого. Это прекрасно работает после того, как я установил установщик службы для запуска в качестве учетной записи локальной службы.
<Exec WorkingDirectory="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
Command="InstallUtil.exe -i XXX.exe" />
Просто для справки, чтобы установить на удаленный сервер, вы должны использовать задачу SericeController, указанную здесь:
http://weblogs.asp.net/scottgu/archive/2006/02/12/438061.aspx