需要重新启动时,不会发生自注册



我有一个Installscript安装程序。当我运行它以更新产品并且产品的某些部分正在运行时,需要重新启动。——没关系。

事实证明,在重新启动的情况下,所有文件都会正确复制,但不会进行配置的自注册 - 不是在安装期间,也不是在重新启动之后。

我已经检查了setup.ilg文件,它告诉我没有消息:文件被复制,并且似乎已经完成了自我注册。

当我关闭程序以防止重新启动的必要性或第一次安装时一切正常时。

您能解释一下为什么没有进行自我注册以及我能做些什么来实现它吗?谢谢!

Stein 让我权衡一下。

老实说,自 2003 年以来,我就没有接触过 InstallScript 项目类型。 但我可以猜测正在发生的事情。 我想锁定的文件会导致 MoveFileEx(( 使用挂起文件重命名操作模式,并且没有发生自注册,因为 DLL 还没有在需要的地方。 重新启动后必须发生一些事情才能在重新启动后调用 LoadLibrary/DllRegisterServer((,而文件现在处于其最后的休息位置。

为什么这不会自动发生? 我不知道。 我做了一个快速的谷歌搜索,确实找到了这篇文章:

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

不幸的是,我的公司防火墙阻止我访问它。 根据谷歌向我展示的内容,听起来您可能有一个解决方法,即使用 XCopy 函数来处理这个问题。

老实说,虽然我只做 MSI 项目了,但您也可以通过收集 COM 元数据并自己应用注册表数据来退出该剧本,以便在重新启动后一切正常。

构建时的 COM 提取:也许尝试在构建时启用 COM 提取以消除自注册的需要?请参阅此答案:无法从自定义操作运行脚本函数。实质上,该选项隐藏在每个组件的属性页中。

这也许是一个根本不是 MSI 的旧式旧式安装程序吗?

  • https://helpnet.flexerasoftware.com/installshield24helplib/helplibrary/IHelpCompRegDynamic.htm

InstallShield 社区:

  • https://community.flexerasoftware.com
  • http://forum.installsite.net

最新更新