我想知道是否可以在不使用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。
答案 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)。