У меня есть установка MSI, созданная с помощью InstallShield 2009, которая устанавливает службу .NET, устанавливая для параметра «Класс установщика .NET» значение «Да» для компонента, содержащего исполняемый файл службы. Эта базовая установка, которая содержит файлы, и exe-файл устанавливается нормально. Я создал небольшое обновление MSP, которое обновляет исполняемый файл службы в исходной установке. Когда я запускаю MSP в системе, содержащей базовую установку, я получаю сообщение об ошибке 1001, потому что она пытается переустановить службу во время установки MSP с небольшим обновлением.
Официальный ответ Flexera на эту проблему заключается в том, что если исполняемый файл .NET необходимо обновить, то следует установить для компонента «Класс установщика .NET» значение «Нет» и создать свои собственные настраиваемые действия. Flexera также признала, что они нигде не документируют, что если вы установите для «Класса установщика .NET» значение «Да», вы не сможете создавать обновления MSP для своей установки. Невозможно вернуться и изменить базовую установку, поскольку она была выпущена, и для нее необходимо создать обновление. Я самостоятельно придумал обходной путь, включив пользовательское действие в обновление MSP, которое удаляет службу во время установки MSP. Это устанавливает небольшое обновление MSP, но этот обходной путь не работает для удаления MSP из ARP.
Мне нужно знать лучший способ решить эту проблему в будущих установках. Как установить службу .NET таким образом, чтобы ее можно было легко обновить позже с помощью небольшого обновления MSP?