При использовании msbuildtasks UninstallAssembly служба ставится в очередь только на удаление, а сервер требует перезапуска

Я настраиваю проект для работы под сервером интеграции teamcity на сервере Windows 2003 (с пакетом обновления 2). Интеграционные тесты запускаются с использованием msbuild с последней версией msbuildtasks v1.2.0.306. Весь код построен с использованием .net 2.0.

В нашем файле build.xml мы удаляем все службы, используемые системами, перестраиваем их все заново, воссоздаем их, а затем запускаем кучу тестов nunit, чтобы убедиться, что они хорошо работают вместе.

Чтобы удалить службы, мы используем задачу UninstallAssembly следующим образом:



Когда я смотрю на вывод сборки, запускается команда installUtil:

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ InstallUtil. exe / uninstall .. \ src \ FolderName \ ProjectName \ bin \ Debug \ ProjectName.exe

Затем мы переустанавливаем службу с помощью задачи InstallAssembly:



это часто нормально, но иногда мы получаем такую ​​ошибку:

ошибка MSB6006: "

[SC] DeleteService FAILED 1072:

Указанная служба была отмечена для удаления.

Когда служба находится в состоянии «помечена для удаления», есть ли способ избавиться от нее?

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

редактировать:

Эта проблема, похоже, возникает, когда при предыдущем запуске служба не запускалась. например. где мы получаем ошибку:

Служба ServiceName запускается ...

f: \ TeamCityUser \ Checkout \ trunk \ dev \ build.xml (187, 5): не удается запустить службу ServiceName на компьютере «ИМЯ КОМПЬЮТЕРА».

Похоже, что после неудачного запуска службы мы не можем удалить службу до перезагрузки. Я считаю, что в этом случае причина того, что служба не запускалась, заключалась в том, что конструктор основного класса службы выдал исключение FileNotFoundException . Класс является производным от ServiceBase .

Я все еще хотел бы знать, как удалить службу без перезагрузки.

1
задан Adam Butler 10 September 2010 в 17:11
поделиться