C# COM DLL:我应该使用Regasm还是Regsvr32?

24

我正在构建一个C# ActiveX DLL...我应该使用REGASM还是REGSVR32进行注册?

如何注册64位接口与32位接口?

2个回答

34

您需要使用 regasm.exe 来注册32位和64位接口,我认为您需要在每个 regasm.exe 中运行:

C:\Windows\Microsoft.NET\Framework\v2.0.50727

并且

C:\Windows\Microsoft.NET\Framework64\v2.0.50727

所以... 在你的情况下,你需要在 Framework64\v2.0.50727 文件夹中运行 regasm.exe

以下是我们用来为其中一个遗留的ASP应用程序注册COM互操作DLL的示例:

regasm.exe Hosting.DeviceManager.Power.dll /register /codebase /tlb

2
如果DLL以“Any CPU”格式构建,无论您是否在其中选择了regasm,它都将在64位计算机上注册为64位程序集,并在32位计算机上注册为32位程序集。
C:\Windows\Microsoft.NET\Framework\v2.0.50727

或者
C:\Windows\Microsoft.NET\Framework64\v2.0.50727

DLL将被注册为32位。


1
根据我在其他地方阅读的内容,我认为Framework64...\regasm将会注册64位。 - Sideshow Bob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接