我在.net项目中引用vb6 dll时遇到问题。当我在.net项目中引用vb6 dll时,会使用相同的版本(1.2.0.0)创建interop dll。作为用于在客户端部署应用程序的设置,它的创建问题如果版本与以前相同,则不会替换dll。我想更改interop dll的版本(使用vb6 dll创建)。我用tlbIMP读取了它,但是如何为vb6 dll创建tlb文件。或者还有其他方法可以实现这一目标。
由于 SAURABH
答案 0 :(得分:4)
使得互操作库的版本号与VB6创建的类型库的版本号不同,这使得非常。互操作库中的内容与您在VB6中编写的代码之间存在一对一的映射。互操作库只包含VB6 COM接口的IL声明,没有实际的代码。 CLR使用它来快速生成接口的RCW。
使用Project + Properties,Make选项卡,版本号更改VB6中的类型库版本号。重要和次要是重要的。只有在公开可见的VB6类中进行更改时才执行此操作。这样做是必要的,它避免了DLL Hell。
答案 1 :(得分:3)
这是我们用来创建interop dll的一个小批处理文件,所以它的名字很强:
sn.exe -i MichiganLTAP.pfx MagicContainerName
tlbimp.exe ourVb6.dll /out:Our.Strongnamed.Interop.dll /asmversion:7.1.0.0 /keycontainer:MagicContainerName /machine:X86 /namespace:Our.Strongnamed /verbose /sysarray
sn.exe -d MagicContainerName
从您的角度来看,重要的转变是:/asmversion:7.1.0.0
您应该能够将其设置为您想要的任何内容。有关可用开关的更多信息,请查看MSDN Library page。