如何在没有RegAsm.exe的情况下注册类型库

时间:2010-03-03 22:44:43

标签: .net com-interop regasm dllregistration tlbexp

我想知道是否可以在不使用RegAsm tool的情况下注册类型库。这是我的情况,希望能够解释我为什么要这样做:

我正在开发一个.NET程序集,它将为我们的旧VB6应用程序提供一些现代功能。我已经使用RegAsm在我的开发机器上成功注册了程序集和类型库,如下所示:

regasm.exe MyAssembly.dll /tlb /codebase

上面的命令生成类型库(MyAssembly.tlb)并注册它以及注册程序集。我需要注册的类型库,以便我可以在VB6中使用Intellisense。

我使用此方法的问题是我在生成类型库文件时没有像TlbExp.exe那样具有相同级别的控制。特别是,我需要将TlbExp的/ names标志用于我的属性名称的specify the proper case(RegAsm屠杀它们)。因此,如果我使用TlbExp生成我的tlb文件,是否有任何方法可以将其与程序集注册过程分开注册?

编辑: da_m_n的回答对我问的问题是正确的。但是,我错误的假设是因为RegAsm可以注册一个类型库,必须注册tlb以便在VB6中引用它。所以现在我正在注册程序集并使用固定名称引用未注册的TlbExp生成的tlb。

2 个答案:

答案 0 :(得分:4)

使用regtlib.exe注册tlbexp生成的tlb文件。

答案 1 :(得分:2)

onclick="return false;"在Win10平台上不可用。使用相应.NET SDK中的相应@With(Secure.class) @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Secure { } (例如regtlib.exe,请参阅https://docs.microsoft.com/en-us/dotnet/framework/tools/tlbexp-exe-type-library-exporter)。

相关问题