У меня есть установщик MSI, который устанавливает продукт, и этот продукт имеет несколько широко используемых API dll. Эти DLL могут быть загружены в процессы, которые я не могу контролировать во время обновления (например, я не могу попросить пользователя закрыть explorer.exe или svchost). Итак, во время обновления MSI эти dll заблокированы и не могут быть обновлены без перезагрузки. Мне нужно сделать обновление без перезагрузки. Эти API-интерфейсы очень стабильны, и можно оставить старые копии, работающие в старых процессах, когда новые версии этих dll будут загружены в новые запущенные процессы. Итак, когда мы не использовали MSI, мы просто использовали стандартный трюк - переименовать файл, пометить его, чтобы удалить при перезагрузке, написать новый файл.Как сообщить MSI обновить заблокированные DLL и избежать перезагрузки
Каков наилучший способ, как это сделать в MSI? Должен ли я создавать пользовательские действия, которые будут выполнять этот стандартный трюк? Или, может быть, у MSI есть лучший способ сделать это?
Спасибо!
Это не совсем так. Как я сказал в первом посте, я могу оставить свою старую dll загруженной в старые процессы. И только новые будут использовать новую dll. – Oleg
Вы имеете в виду, что новые DLL используют новое имя и новые крючки? Хм ... – ewall