我明智地创建了一个安装程序,用于使用进程内(DLL)COM-Server的Delphi应用程序。 我将Wise项目中的DLL配置为“不要注册”,但是在测试安装之后它仍然被注册?WISE - COM服务器注册选项“不注册”不起作用?
这是明智的“无证功能”还是我做错了什么?
有没有人有解决方法或解决此问题?
P.S.我不想注册该DLL的原因是,在目标PC上,COM服务器已经可以为其他应用程序注册具有特定设置(线程模型,路径等)的我不想触摸的目标PC。
我明智地创建了一个安装程序,用于使用进程内(DLL)COM-Server的Delphi应用程序。 我将Wise项目中的DLL配置为“不要注册”,但是在测试安装之后它仍然被注册?WISE - COM服务器注册选项“不注册”不起作用?
这是明智的“无证功能”还是我做错了什么?
有没有人有解决方法或解决此问题?
P.S.我不想注册该DLL的原因是,在目标PC上,COM服务器已经可以为其他应用程序注册具有特定设置(线程模型,路径等)的我不想触摸的目标PC。
我发现了一个可能的解决方案或解决方法(可能是因为我我以前不理解它,直到结束,但它的工作)。
COM DLL将目标电脑上注册,即使是标有如果登记部署PC上的“不注册”,以备不时之需。 解决方案:
完成这些步骤后,按预期方式工作 - DLL未在目标PC上注册。
看来,这是因为Windows安装程序的广告发生(这还是我没有正确理解),但是从WISE的文档,我发现:
“如何自注册信息被捕获 当您添加含COM自注册信息给 安装一个.DLL 或.OCX文件,它的注册信息被扫描,并且 相应注册表项添加到安装。此注册系统 比安装时在 安装时让文件自注册更为强大,因为它不依赖目标计算机上其他 文件的存在或.OCX或.DLL文件 对自身的依赖程度。 。-registration约定”
为此作为附加措施之前,上述步骤,我改变WISE广告选项:
对于Advertising Setting:
选择Do not scan advertising information
选项。
未选中选项Automatically add self-registration
。
这一切都写得实际的解决方案,但由于@Christopher画家响应我在“DLL地狱”术语被引入,特别是对COM DLL文件,以便为长期的解决方案(透视)我会检查注册免费激活COM组件(link)。
我试图避免这变成了“我应该使用线程的工具”。也就是说,WiX/IsWiX是免费的开源软件,应该可以满足您的需求。 (这很难说,因为我不知道这个MSI会有什么其他要求。)
这就是说,有没有可能DLL已经被注册了?您是否在快照虚拟机或其他可重现的环境中进行测试,您可以100%确定它不是?
如果是这样,智慧脚本中是否还有其他任何可能导致注册的操作。我并不知道明智的缺陷/功能,但如果有的话,您就是SOL,因为该产品早已死亡,并且没有可用的支持或更新。
最后一个注释。你对这个DLL的评论可能已经存在并且被注册了......这叫做DLL地狱。如果它不在那里......现在你没有注册。无论您使用何种工具,在您希望获得高质量安装体验之前,您都需要解决一些设计问题。
是的,如果你私下部署你的DLL并使用RegFree COM,你已经隔离了这个组件,并解除了DLL的地狱冲突。这将是一个更好的设计。 –