.net - 重性高潮不起作用

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

考虑到它不适用于我的所有 4 台计算机,外加 3 台运行 Windows 7 到 2000 的虚拟机,任何人都可以向我展示一个 regasm 调用的工作示例吗?我觉得我是个白痴。

最佳答案

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

故障模式很少。除了:

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

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

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

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

https://stackoverflow.com/questions/5136638/

相关文章:

vb6 - 如何枚举计算机上可用的 COM 端口?

windows - Perl 中的“打开”语句拆分包含空格的路径 - 如何读取路径中包含空格的文件?

ms-access - 通过 Access VBA 代码保存查询

wordpress - 如何检索当前获取附件的 MIME 类型

php - 使用 preg_replace 删除特定字符周围的空格

sql-server - T-SQL 固定宽度输出

php - 在 Web 服务器环境中的 PHP 中启用进程控制 (PCNTL) 有哪些副作用?

sql-server - SQL Server 数据库还原卡在 99%

sql - 在 SQL 中将列的子集重置为其默认值?

database-design - 将单一类型关联到多个类型