Я мигрировал с VS2008 на VS2010.Установка службы Windows раньше была простой и теперь процедура воняет.Во-первых, мой обновленный проект установки приводит к появлению MSI, который не совместим с MSI, созданным в 2008 году. На самом деле две причины: где-то каким-то образом меняются GUID компонентов, что приводит к удалению большинства DLL, если вы запускаете MSI в качестве обновления.(не новая установка, это работает ... иногда просто читайте дальше).Но, эй, я использую скрипт postbuild для изменения MSI, что-то с InstallExecuteSequence table , без пота ... правильно.Во-вторых, вы получаете сообщение об ошибке «Служба уже существует», поскольку служба Windows, которую вы устанавливаете, не останавливается и не удаляется во время обновления, но программа установки пытается зарегистрировать службу в реестре.Но, без проблем, я изменил свое настраиваемое действие, чтобы остановить службу и удалить записи реестра (последняя часть была очень уродливой, запустив новый процесс, который вызывает sc.exe с некоторыми параметрами, без отображения консоли ... приятно).Так что теперь нет ошибок во время обновления моей службы Windows.Да, закрой билет, иди дальше.Не так быстро: поскольку служба не остановлена ДО того, как файлы будут скопированы, систему необходимо перезагрузить, чтобы завершить установку, когда служба уже запущена.Так что теперь наши клиенты должны перезагрузить весь сервер, что приводит к простою всех запущенных процессов?Конечно, неприемлемо.
Отличная работа MS, это никогда не было проблемой с VS2008!Вы даже пытались протестировать создание установщика для службы Windows?Надеюсь, вы читаете это ...
Достаточно жаловаться, у меня есть сроки, чтобы сделать: как остановить мой сервис, прежде чем все файлы будут скопированы?Перемещение некоторых элементов в таблице InstallExecuteSequence MSI?Кто-нибудь знает какие?Или кто-нибудь знает исправление MS для проектов установки, которое решает мои проблемы?