2

对于在 Web 中注册 .NET COM 对象的每个示例,我都看到了用于完成这项工作的工具“regasm”。每个人都这样做!!!
但它从来没有对我有用!我厌倦了试图克服它!我唯一的解决方案是 regsvr32,它需要一个我只能在 C++ 中定义的函数。
请告诉我为什么它不能正常工作!!!

考虑到它不适用于我的所有 4 台计算机以及 3 台运行 Windows 7 到 2000 的虚拟机,谁能给我看一个 regasm 调用的工作示例?我觉得我是个白痴。

4

2 回答 2

9

无法使用 Regsvr32.exe 注册 [ComVisible] .NET 程序集。它没有 Regsvr32 所需的 DllRegisterServer 入口点。您必须使其与 Regasm.exe 或安装项目一起使用。当您将服务器部署到另一台机器时,后者是必需的。

故障模式很少。以外:

  • 忘记使用 /codebase 选项。如果您不将程序集部署到 GAC,则需要,您不应该在您的开发计算机上执行此操作。

  • 使用错误版本的 Regasm.exe。在 64 位机器上有两个,如果客户端代码是 64 位,Framework64 目录包含您必须使用的一个。

  • 从未提升的命令提示符运行它。Regasm.exe 写入注册表的 HKLM 配置单元,这是 UAC 积极阻止的。这是 Vista 和 Win7 上的问题。

当然也有可能只是让装配出现严重错误。就像不制作一个或多个接口和/或类 [ComVisible]。

于 2011-02-27T23:26:05.970 回答
0

有可能,我之前遇到过这个挑战,我在 cmd 窗口上运行了这段代码,它成功了

 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll

如果它适合你,请投票。

于 2014-07-31T05:42:56.083 回答