Файл OCX не развертывается из MSI, созданного с помощью Visual Studio 2003 в Windows 7
У меня есть устаревшая установка из приложения DotNet 1.1 (с Visual Studio 2003), которая не будет развертывать файл msflxgrd.ocx при ПЕРВОЙ установке в Windows 7. Если я удаляю MSI, а затем снова запускаю тот же MSI (и будущие установки) на том же ноутбуке), файл msflxgrd.ocx развертывается. Сначала я подозревал, что это проблема regsvr32, но, поскольку нет файла для регистрации, похоже, это проблема развертывания. У меня есть административные права на машины.
У меня есть ссылки на журналы MSI здесь:
Кто-нибудь может помочь?
Спасибо!
2 ответа
Мой предыдущий ответ должен был объяснить, что пошло не так. Этот ответ будет, как это исправить.
InstallShield распространяет модуль слияния для этого элемента управления, который содержит версию 6.0.84.18. Однако, похоже, что этот модуль слияния устарел и не содержит обновления безопасности, выпущенного Microsoft несколько лет назад. Смотрите тему:
Обновлены модули слияния для бюллетеня по безопасности MS08-070
В потоке Майк Марино попытался получить обновленные модули слияния от Microsoft, но ему сказали:
Microsoft не будет предоставлять модули слияния для них. Они рекомендовали пользователям либо создавать свои собственные MSM, либо включать эти файлы в свои собственные MSI.
Вот что я хотел бы сделать. Убедитесь, что msflxgrd.dll является последней версией MS08-070 (6.1.98.14) или новее. Запишите его в свой установщик в каталоге SystemFolder. Отметьте это как Permanenet = true. Установите для атрибута Register значение vsdraCOM и установите SharedLegacyFile = true.
Перестройте свой установщик и снова протестируйте сценарий обновления. Тебе должно быть хорошо идти.
Из того, что я вижу в журнале 1, машина не так чиста, как вы думаете. FindRelatedProducts находит предыдущую установку вашего продукта и сообщает RemoveExistingProducts, чтобы удалить его перед установкой новой версии.
Я видел ситуации, когда правила компонента нарушались, когда MSI считает, что файл не нужно устанавливать, но затем файл удаляется при удалении обновляемого продукта, и файл в итоге не устанавливается. Удаляя и переустанавливая, вы разбиваете его на два этапа, чтобы при второй установке оценить потребность в файле, он возвращается как "да" и устанавливается.
Тот факт, что это OCX COM-сервер, является простым совпадением и не имеет отношения к реальной проблеме.
Мне нужно, чтобы MSI уже был установлен и обновление MSI, чтобы дать вам конкретные меры.
Начало действия 14:55:44: FindRelatedProducts. MSI (s) (A0:18) [14:55:44:119]: ИЗМЕНЕНИЕ ИМУЩЕСТВА: добавление свойства PREVIOUSVERSIONSINSTALLED. Его значение равно "{08D8BF6E-E399-4B8A-8B8D-7DFF68F81131}". MSI (s) (A0: 18) [14: 55: 44: 119]: Пропуск действия: ERRCA_CANCELNEWERVERSION (условие ложно) MSI (s) (A0:18) [14:55:44:119]: Выполнение действия: VSDCA_VsdLaunchConditions Действие завершено 14:55:44: FindRelatedProducts. Возвращаемое значение 1.