6

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

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

regasm.exe MyAssembly.dll /tlb /codebase

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

我对这种方法的问题 是,在生成类型库文件时我没有与TlbExp.exe相同的控制级别。特别是,我需要使用 TlbExp 的 /names 标志来指定我的属性名称的正确大小写(RegAsm 屠宰它们)。所以如果我使用 TlbExp 来生成我的 tlb 文件,有没有什么方法可以将它与程序集注册过程分开注册?

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

4

2 回答 2

5

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

于 2010-03-03T22:54:39.293 回答
2

regtlib.exe在 Win10 平台上不可用。使用在TlbExp.exe相应的 .NET SDK 中找到的适当的(例如,"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\TlbExp.exe" "$(TargetDir)$(TargetFileName)" 参见https://docs.microsoft.com/en-us/dotnet/framework/tools/tlbexp-exe-type-library-exporter)。

于 2017-09-22T16:00:39.663 回答