.Net Windows Services и InstallState - действительно ли это необходимо?
У меня есть несколько управляемых кодов служб Windows, для которых мы используем инструмент Frameworks InstallUtil для установки в диспетчер управления сервисом. Этот инструмент создает новый файл во время установки с расширением .InstallState. Я экспериментировал с удалением этого файла, и после этого удаление все еще отлично работает.
Итак, мои вопросы: для чего этот файл, и есть ли причина, по которой я не должен его удалять?
Изменить 5/3/10: Действительно? Никто не знает, что такое значение этого файла?
Ответы
Ответ 1
В VS.NET вы можете определить пользовательский диалог для своего проекта msi. Я использую такой диалог для запроса адреса и учетных данных SQL Server, msi сохраняет всю информацию из текстовых полей в файл InstallState. Когда служба будет удалена, она будет считывать значения из файла InstallState и удаляет базу данных, созданную на этапе установки. В моем случае файл InstallState является обязательным, потому что удаление завершится неудачно, если файл был удален после установки.
Ответ 2
Файл должен быть удален процессом удаления. Если вы используете настраиваемое действие установки, вы также должны добавить процесс удаления. Отсутствующий файл .installstate не будет препятствовать удалению службы.
http://adamhouldsworth.blogspot.com/2009/11/c-setup-installstate.html
http://support.microsoft.com/kb/934388
Ответ 3
Файл InstallState используется InstallUtil.exe для удаления службы/сборки. Данные, содержащиеся в нем, - это деинсталляция данных. Если вы не прочитали короткую скрытую ссылку на MSDN, вы можете прочитать ее здесь.
Возможно, пакет установки удаляет все для вас правильно, но я не уверен, что служба будет удалена правильно, если вы сами вызываете InstallUtil вручную / script.
Это предполагаемое значение файла .InstallState.