首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WISE - COM服务器注册选项“不注册”不起作用?

WISE - COM服务器注册选项“不注册”不起作用?
EN

Stack Overflow用户
提问于 2014-03-05 09:08:58
回答 2查看 183关注 0票数 0

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

这是明智的“无记录的特性”,还是我做错了什么?

有没有人对这个问题有解决办法或解决办法?

我不想注册DLL的原因是,在目标PC上,COM服务器可能已经注册到另一个具有特定设置(线程模型、路径等)的应用程序,而我不想碰这些设置。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-09 11:46:23

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

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

  • 来自本地(部署) PC的未注册DLL
  • 从安装包中删除它,保存(并编译)包
  • 重新添加COM DLL到包,标记为“不注册”,保存和编译.

在这些步骤之后,它将按预期的方式工作- 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组件 (链接)的无注册激活。

票数 1
EN

Stack Overflow用户

发布于 2014-03-05 15:27:28

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

也就是说,DLL是否已经注册了?您是否在快照VM或其他可重复的环境上进行测试,您可以100%肯定它不是?

如果是这样的话,wise脚本中是否还有其他可能导致注册发生的操作。我不知道wise中有一个bug/特性,但如果存在,您就是SOL,因为该产品早就死了,而且没有支持或更新。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22193125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档