Я использую обычный проект установки Visual Studio для развертывания службы. Мне нужно выполнить настраиваемое действие, до файлы будут скопированы программой установки. AFAIS все пользовательские действия (производные от установщика...) выполняются после копирования файлов (что очевидно, поскольку их нужно каким-то образом выполнить).
Фактическая проблема заключается в том, что установщик сам проверяет, какие файлы используются, и останавливает службу перед копированием (кстати, диалог установщика для остановки приложений говорит ерунду - но это другой вопрос). В принципе, это хорошая идея. Однако после установки конфигурация службы настроена на перезапуск службы, если она не запущена (эту работу выполняет диспетчер управления службами). Эта конфигурация является обязательной, ее нельзя изменить навсегда (только временно). Позже, во время установки обновления, это иногда сталкивается с процессом (обновления) установки. Поэтому в случае установки обновления я хочу изменить конфигурацию (старой) службы, чтобы не перезапустить или даже удалить (старую) службу до того, как файлы будут скопированы в целевую папку. В противном случае копирование файлов иногда завершается ошибкой, если файл все еще используется (поскольку старая служба снова работает (только что перезапущена диспетчером управления службами), как описано выше). Короче говоря, мне нужно выполнить некоторый код, прежде чем (новые) файлы будут скопированы установщиком.
Это связанный вопрос, но ответ не соответствует моему вопросу: into-the-target-directory-by-m">Создать резервную копию целевого каталога до того, как файлы будут скопированы в целевой каталог установщиком msi