Самостоятельная регистрация не происходит, когда требуется перезагрузка - PullRequest
0 голосов
/ 02 октября 2018

У меня есть установщик Installscript.Когда я запускаю его для обновления продукта, а его части работают, требуется перезагрузка.- Это нормально.

Оказалось, что в случае перезагрузки все файлы копируются правильно, но настроенная самостоятельная регистрация не происходит - ни во время установки, ни после перезагрузки.

Я проверил файл setup.ilg, и он не сообщает мне никаких новостей: файлы копируются, и саморегистрация кажется выполненной.

Когда я закрываю программы, чтобы предотвратить необходимостьперезагрузка или при первой установке все в порядке.

Можете ли вы объяснить, почему не происходит саморегистрация и что я могу сделать, чтобы это произошло?Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Стейн попросил меня взвесить это.

Честно говоря, я не касался типов проектов InstallScript с 2003 года. Но я могу предположить, что происходит.Я полагаю, что заблокированный файл заставляет MoveFileEx () использовать шаблон операции PendingFileRename и что саморегистрация не происходит, потому что DLL не там, где она должна быть.Что-то должно произойти после перезагрузки, чтобы вызвать LoadLibrary / DllRegisterServer () после перезагрузки, когда файл сейчас находится в окончательном месте покоя.

Почему это не происходит автоматически?Я понятия не имею.Я сделал быстрый поиск в Google и нашел эту статью:

http://helpnet.installshield.com/installshield19helplib/Subsystems/installshield19langref/helplibrary/LangrefXCopyFile.htm

К сожалению, мой межсетевой экран корпорации блокирует мне доступ к нему.Исходя из того, что Google показал мне, похоже, что вы можете обойти эту проблему, используя функцию XCopy, чтобы справиться с этим.

Честно, хотя я больше работаю только с проектами MSI, и вы также можете выйти из этой пьесы, собравметаданные COM и применение данных реестра самостоятельно, чтобы после перезагрузки все выровнялось.

0 голосов
/ 10 января 2019

Извлечение COM при сборке : Может быть, попытаться включить Извлечение COM при сборке , чтобы устранить необходимость самостоятельной регистрации?Пожалуйста, посмотрите этот ответ: Не удалось запустить функцию сценария из пользовательских действий .По сути, этот параметр скрыт на странице свойств для каждого компонента.

Возможно, это устаревший установщик старого образца, который вообще не является MSI?

Сообщества InstallShield:

...