Файл OCX не развертывается из MSI, созданного с помощью Visual Studio 2003 в Windows 7 - PullRequest
4 голосов
/ 20 марта 2012

У меня есть устаревшая установка из приложения DotNet 1.1 (с Visual Studio 2003), которая не будет развертывать файл msflxgrd.ocx при ПЕРВОЙ установке в Windows 7. Если я удаляю MSI, а затем снова запускаю тот же MSI, ( и будущие установки на тот же ноутбук), файл msflxgrd.ocx развертывается. Сначала я подозревал, что это проблема regsvr32, но, поскольку нет файла для регистрации, похоже, это проблема развертывания. У меня есть административные права на машины.

У меня есть ссылки на журналы MSI здесь :

Кто-нибудь может помочь?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Мой предыдущий ответ состоял в том, чтобы объяснить, что пошло не так. Этот ответ будет, как это исправить.

InstallShield распространяет модуль слияния для этого элемента управления, который содержит версию 6.0.84.18. Однако, похоже, что этот модуль слияния устарел и не содержит обновления для системы безопасности, выпущенного Microsoft несколько лет назад. Смотрите тему:

Обновлены модули слияния для бюллетеня по безопасности MS08-070

В теме Майк Марино попытался получить обновленные модули слияния от Microsoft, но ему сказали:

Microsoft не будет предоставлять модули слияния для них. Oни Рекомендуется, чтобы пользователи либо создавали свои собственные МСМ, либо включали файлы в своих собственных MSI.

Так вот, что бы я сделал. Убедитесь, что msflxgrd.dll является последней версией MS08-070 (6.1.98.14) или новее. Запишите его в свой установщик в каталоге SystemFolder. Отметьте это как Permanenet = true. Установите для атрибута Register значение vsdraCOM и установите SharedLegacyFile = true.

Перестройте свой установщик и снова протестируйте сценарий обновления. Вам должно быть хорошо идти.

0 голосов
/ 21 марта 2012

Из того, что я вижу в журнале 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 (A0: 18) [14: 55: 44: 119]: Выполнение действия: VSDCA_VsdLaunchConditions Действие завершено 14:55:44: FindRelatedProducts. Возвращаемое значение 1.

...