【问题标题】:Regasm in code (dynamic register)代码中的 Regasm(动态寄存器)
【发布时间】:2013-09-12 21:25:53
【问题描述】:

如何在 REGASM 之类的代码中注册 COM 可见的程序集?

背景: 我必须使用旧版 Delphi 5 应用程序部署 dll,但 DLL 是 C# 编写的,并且使 COM 可见。

有没有一种方法可以在代码中动态复制此功能 (regasm xxx.dll),因为旧版应用程序是从网络路径启动的(所有客户端上都没有本地安装)。

谢谢

【问题讨论】:

  • 免费注册COM?
  • 谢谢 - 会检查一下
  • 你不能运行 regasm 吗?既然功能已经存在,为什么还要复制它的功能?
  • 我无法访问应用程序的所有用户及其地理分布。如果可以的话,我会选择简单的选择:|
  • @DaneBalia - 应用程序的用户、他们的地理位置和 regasm 工具之间的关系是什么?为什么不能完全使用 regasm?

标签: c# delphi dll com


【解决方案1】:

您可以使用/regfile 命令行选项到regasm,然后执行生成的.reg 文件。

我更喜欢使用reg.exe import "%s" 而不是regedit.exe,因为它可以避免弹出窗口。或者您可以编写自己的 .reg 解析器并更新注册表,但这可能过于复杂。

确保每个 "CodeBase"="file://...." 条目都将更改为包含 COM .dll 包装器的预期(网络)文件夹。

【讨论】:

  • 对于我的一生,我无法想象为什么宁愿掏出reg而不是直接打电话给regasm
  • 事实上,我有时用它来为实际用户注册一些COM对象,只使用HKEY_CURRENTUSER而不是HKEY_LOCALMACHINE:在这种情况下,不需要管理员权限。由于安全原因,即使免注册 COM 失败,这也有效。但是regasm 是设计上的正常方式。
猜你喜欢
  • 1970-01-01
  • 2014-11-21
  • 2010-09-06
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多