Delphi WISE-COM服务器注册选项“;“不注册”;不';不行?

Delphi WISE-COM服务器注册选项“;“不注册”;不';不行?,delphi,com,wise,Delphi,Com,Wise,我在wise中创建了一个安装程序,用于使用in-proc(DLL)COM服务器的Delphi应用程序。 我在Wise项目中将DLL配置为“不注册”,但是在测试安装之后,它还是注册了吗 这是WISE的“未记录功能”还是我做错了什么 是否有人对此问题有解决方法或修复方法 另外,我不想注册DLL的原因是,在目标PC上,COM服务器可能已经为另一个应用程序注册了我不想接触的特定设置(线程模型、路径等)。我试图避免这变成“我应该使用什么工具线程”。也就是说,WiX/IsWiX是免费的开源软件,应该可以满

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

这是WISE的“未记录功能”还是我做错了什么

是否有人对此问题有解决方法或修复方法


另外,我不想注册DLL的原因是,在目标PC上,COM服务器可能已经为另一个应用程序注册了我不想接触的特定设置(线程模型、路径等)。

我试图避免这变成“我应该使用什么工具线程”。也就是说,WiX/IsWiX是免费的开源软件,应该可以满足您的需求。(很难说清楚,因为我不知道这个MSI还有什么其他要求。)

也就是说,DLL是否有可能已经注册?您是否在快照虚拟机或其他可复制的环境中进行测试,在这些环境中您可以100%确定它不是

如果是这样,wise脚本中是否有任何其他操作可能导致注册发生。我不知道wise中有什么bug/功能,但如果有,您就是SOL,因为该产品早已过时,并且没有可用的支持或更新


最后一个音符。您对DLL的评论可能已经存在并已注册。。。那叫地狱。如果它不在那里呢。。。现在你还没有注册。无论您使用什么工具,在希望获得高质量的安装体验之前,您都需要解决一些设计问题。

我试图避免将此转化为“我应该使用什么工具”。也就是说,WiX/IsWiX是免费的开源软件,应该可以满足您的需求。(很难说清楚,因为我不知道这个MSI还有什么其他要求。)

也就是说,DLL是否有可能已经注册?您是否在快照虚拟机或其他可复制的环境中进行测试,在这些环境中您可以100%确定它不是

如果是这样,wise脚本中是否有任何其他操作可能导致注册发生。我不知道wise中有什么bug/功能,但如果有,您就是SOL,因为该产品早已过时,并且没有可用的支持或更新


最后一个音符。您对DLL的评论可能已经存在并已注册。。。那叫地狱。如果它不在那里呢。。。现在你还没有注册。无论您使用什么工具,在希望获得高质量的安装体验之前,您都需要解决一些设计问题。

我找到了一个可能的解决方案或解决方法(可能是因为我直到最后才理解它,但它正在工作)

COM DLL将在目标PC上注册,即使它标记为“不注册”,如果它是在部署PC上注册的。 解决方案:

  • 从本地(部署)PC注销的DLL
  • 从安装包中删除它,保存(并编译)包
  • 将COM DLL重新添加到包中,用“不注册”标记,保存并编译
完成这些步骤后,它将按预期工作-DLL未在目标PC上注册

这似乎是因为windows installer广告(我仍然没有正确理解),但从WISE文档中我发现:

“如何获取自注册信息 当你添加一个.DLL 或包含COM自注册信息的.OCX文件 安装时,将扫描其注册信息并 将相应的注册表项添加到安装中。此系统 注册的安全性比让文件在 安装时间,因为它不依赖于其他设备的存在 目标计算机上的文件或.OCX或.DLL文件的性能 遵守自我登记公约。”

出于这个原因,作为额外措施,在上述步骤之前,我更改了WISE广告选项:

工具>选项。。。广告标签“>

对于
广告设置:
选中
不扫描广告信息
选项。
未选中选项
自动添加自注册



所有这些都是实际的解决方案,但由于@Christopher Painter的响应,我被引入了“DLL地狱”术语,尤其是COM DLL,因此作为长期解决方案(透视图),我将检查COM组件的无注册激活().

我找到了一个可能的解决方案或解决方法(可能是因为我直到最后才理解它,但它正在工作)

COM DLL将在目标PC上注册,即使它标记为“不注册”,如果它是在部署PC上注册的。 解决方案:

  • 从本地(部署)PC注销的DLL
  • 从安装包中删除它,保存(并编译)包
  • 将COM DLL重新添加到包中,用“不注册”标记,保存并编译
完成这些步骤后,它将按预期工作-DLL未在目标PC上注册

这似乎是因为windows installer广告(我仍然没有正确理解),但从WISE文档中我发现:

“如何获取自注册信息 当你添加一个.DLL 或包含COM自注册信息的.OCX文件 安装时,将扫描其注册信息并 将相应的注册表项添加到安装中。这个系统 注册的安全性比让文件在 安装时间,因为它不依赖于其他设备的存在 目标计算机上的文件或.OCX或.DLL文件的性能 遵守自我登记公约。”

因此,