我在wise中创建了一个安装程序,用于使用in (DLL) COM-Server的Delphi应用程序。我将Wise项目中的DLL配置为“不注册”,但是在测试安装之后,它还是注册了吗?

这是明智的“无记录的特性”,还是我做错了什么?
有没有人对这个问题有解决办法或解决办法?
我不想注册DLL的原因是,在目标PC上,COM服务器可能已经注册到另一个具有特定设置(线程模型、路径等)的应用程序,而我不想碰这些设置。
发布于 2014-03-09 11:46:23
我找到了一个可能的解决方案或解决办法(可能是因为我直到最后才理解它,但它正在起作用)。
COM DLL将在目标PC上注册,即使它被标记为“不注册”,如果它是在部署PC上注册的话。解决方案:
在这些步骤之后,它将按预期的方式工作- DLL不会在目标PC上注册。
这似乎是因为windows installer广告(我仍然不太明白)而发生的,但我从明智的文档中发现:
“当您向安装中添加包含COM自注册信息的.DLL或.OCX文件时,如何捕获自注册信息,对其注册信息进行扫描,并将适当的注册表项添加到安装中。该注册系统比在安装时允许文件自注册更加健壮,因为它不依赖于目标计算机上是否存在其他文件,也不取决于.OCX或.DLL文件遵守自注册约定的程度。”
因此,作为额外措施,在上述步骤之前,我更改了明智的广告选项:

对于Advertising Setting:,选择了Do not scan advertising information选项。
未选中选项Automatically add self-registration。
所有这些都是实际的解决方案,但是由于@Christopher响应,我是在"DLL “术语中引入的,特别是对于COM DLL,因此作为长期解决方案(从角度来看),我将检查COM组件 (链接)的无注册激活。
发布于 2014-03-05 15:27:28
我试图避免这变成一个“我应该使用线程的工具”。也就是说,WiX/IsWiX是免费的开放源码,应该可以满足您的需要。(很难肯定,因为我不知道这个MSI还会有什么其他要求。)
也就是说,DLL是否已经注册了?您是否在快照VM或其他可重复的环境上进行测试,您可以100%肯定它不是?
如果是这样的话,wise脚本中是否还有其他可能导致注册发生的操作。我不知道wise中有一个bug/特性,但如果存在,您就是SOL,因为该产品早就死了,而且没有支持或更新。
最后一个音符。你对DLL的评论可能已经在那里注册了..。这叫DLL地狱。如果它不在那里..。现在你没有注册了。在希望拥有高质量的安装体验之前,您需要解决一些设计问题,而不管您使用的是什么工具。
https://stackoverflow.com/questions/22193125
复制相似问题