c# - 如何做 RegAsm 使其涵盖 32 位和 64 位?

标签 c# windows com regasm regedit

我有一个C#编写的DLL文件,我的系统是Windows 7 64位。 当我应用 RegAsm 时,它不会将注册表添加到 64 位路径,而只会将其添加到 32 位路径。

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /register /codebase "C:\o.dll"

然后,如果我在 regedit.exe 中检查我的 GUID,我会发现它只存在于 32 位注册表路径中:HKEY_CLASSES_ROOT\CLSID\{...我的 guid 位于此处....}

而不是 HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{... not found my guid ...}

因此,我还有其他问题。任何人都可以建议发生了什么以及为什么它不生成 32 位和 64 位注册表项吗?”

最佳答案

你把它倒过来了。 Wow6432Node 是 32 位特定数据所在的位置。使用 32 位 regasm(来自 Framework 目录,而不是 Framework64 目录)将您的组件注册到 Wow6432Node 中。

关于c# - 如何做 RegAsm 使其涵盖 32 位和 64 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24451812/

相关文章:

Windows注册表,如何添加您的 native 程序用于启动执行?

c - 我们如何在命令行开发环境中编写程序?

com - COM 自动化接口(interface)中允许的 "out"参数类型

c++ - 使 excel 在单个打印作业中打印多个工作表

c# - 如何将数组内容与其索引值连接起来

C# TLS session 断开

c# - 创建自定义字符串类

node.js - Socket-io 客户端不断发送连接请求

c# - 我可以在终结器中引用/使用 COM 对象吗?

c# - OUT 事务的 PING 流量控制