Я не очень понимаю, почему вы пытаетесь повторить это в NSIS, когда просто выполняете (ExecShell
) .MSI должен дать вам аналогичный диалог, если продукт уже установлен.
Глядя на документацию msiexec , мы находим:
/x
для удаления. /f
для ремонта. /i
«Устанавливает или настраивает продукт». Установщики, основанные на NSIS, с другой стороны, не поддерживают эти операции, но ремонт обычно можно выполнить, просто переустановив поверх существующей установки.
Используйте Кассини.
Свободный, с открытым исходным кодом.
Это взяло бы тривиальное взламывание для обслуживания из памяти.
Ну, как сложный из сервера HTTP Вам нужно?.NET 2.0 имеет Класс HttpListener, который можно пользоваться к самокрутке основной библиотекой. Так как это для персонального проекта, и Вы готовы инвестировать время, он также сделал бы для хорошего полезного опыта как Вы, Вы доберетесь, чтобы изучить, как работать с классом. Кроме того, согласно документации MSDN, это имеет асинхронный режим, который дает каждому запросу его собственный поток.
Получение основного сервера HTTP с классом и выполнением не является слишком трудным также, необходимо смочь получить только пара, в которой выполняют, сотни строк кода.