У меня есть x86-приложение для Windows, которое состоит из пары служб и пользовательского интерфейса.
Из-за различных проблем, связанных с необходимостью правильного обновления различных MSI-файлов, процесс установки теперь регулируется мастером.программа стиля, которая обнаруживает, что установлено в данный момент, и обрабатывает обновления, сохраняя текущие настройки пользователя, удаляя существующее программное обеспечение и устанавливая новые версии.
Основной процесс:
- Загляните в
HKLM\Software\Classes\Installer\Products
- Переберите в нем GUID-ключи в поисках
ProductName="(my app name)"
- Если не найдено, повторите, начиная с
HKCU\Software\Microsoft\Installer\Products
вместо - Если найдено, предложитепользователю обновление (как описано ранее) или чистую установку (т. е. пользователю задаются различные вопросы с помощью мастера)
Теперь это прекрасно работает практически на любой платформе Windows, о которой вы хотите упомянуть,от XP и выше.Сбой возможен только в Windows Server 2003 x64, поскольку мастер не обнаруживает существующую установку - несмотря на то, что присутствуют те же ключи реестра, что и на любой другой платформе, на которой я тестирую.
Все нормально:
- XP x32
- Vista x32, x64
- Server 2003 x86
- Server 2008 x86,x64
- Server 2008 R2 x64
- Windows 7 x86, x64
Эта проблема возникает только на Server 2003 x64.