Стейн попросил меня взвесить это.
Честно говоря, я не касался типов проектов InstallScript с 2003 года. Но я могу предположить, что происходит.Я полагаю, что заблокированный файл заставляет MoveFileEx () использовать шаблон операции PendingFileRename и что саморегистрация не происходит, потому что DLL не там, где она должна быть.Что-то должно произойти после перезагрузки, чтобы вызвать LoadLibrary / DllRegisterServer () после перезагрузки, когда файл сейчас находится в окончательном месте покоя.
Почему это не происходит автоматически?Я понятия не имею.Я сделал быстрый поиск в Google и нашел эту статью:
http://helpnet.installshield.com/installshield19helplib/Subsystems/installshield19langref/helplibrary/LangrefXCopyFile.htm
К сожалению, мой межсетевой экран корпорации блокирует мне доступ к нему.Исходя из того, что Google показал мне, похоже, что вы можете обойти эту проблему, используя функцию XCopy, чтобы справиться с этим.
Честно, хотя я больше работаю только с проектами MSI, и вы также можете выйти из этой пьесы, собравметаданные COM и применение данных реестра самостоятельно, чтобы после перезагрузки все выровнялось.