无法从vb6代码调用Com +

时间:2012-02-19 14:30:54

标签: .net vb6 com+

我在vs 2010中使用所有Com + attributes.i创建了一个C#dll,创建了一个强密钥,并且 this strong key to Application properties and register it to the assembly: sn -k ComPlusClass.snk

Use VS tool to register the assembly as: regasm ComPlusExample.DLL

Create a Type Library using the tool: `tlbexp ComPlusExample.DLL

Register it in COM+ as: regsvcs ComPlusExample.DLL 后来我在vb6中创建了一个应用程序,并在refrences.Everthing中添加了生成的.tlb。我可以从vb6调用c#dll。但我需要将此代码提供给我的客户端,并且无法在那里运行所有这些步骤。 所以对于这个我创建的exe通过右键单击我在COM + .i中的应用程序在我的客户端系统上安装了这个exe。但是当我从progmramfiles添加tlb的参考时它显示错误module can't be found。plz在这方面帮助我。创建exe是将com +从一个系统导出到另一个系统的正确方法..

1 个答案:

答案 0 :(得分:0)

您的应用程序依赖于.NET Framework,因此必须在要部署的客户端计算机上运行“regsvcs”命令。如果你只是导出库并导入到COM +我不相信必要的CCW(COM可调用包装器)条目被添加到Windows注册表。

因此,我建议创建一个批处理文件,该文件使用您需要的参数运行“regsvcs”命令。您不需要在客户端上生成TLB文件,因为它仅在开发时使用。

当然,您也可以创建一个项目安装程序,为您执行此操作,但如果您正在寻找快速解决方案,批处理文件将执行此操作。