2012-02-19 46 views
0

我创建了一个C#DLL VS 2010与所有的COM + attributes.i造成一种强烈的重点,并 this strong key to Application properties and register it to the assembly: sn -k ComPlusClass.snk无法调用COM +从VB6代码

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.s.Everthing中添加生成的.tlb。我可以从vb6调用c#dll。但是我需要将这些代码提供给我的客户端,并且不可能在那里运行所有这些步骤。 因此,对于这个我创建的exe通过右键单击我的应用程序在COM + .i安装此exe文件在我的客户system.but当我添加从progmramfiles tlb参考它显示module can't be found .plz帮助我在这方面的错误。是创建exe是将我的com +从一个系统导出到另一个系统的正确方法。

回答

0

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

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

当然你也可以创建一个项目安装程序来为你做这件事,但如果你正在寻找一个快速解决方案,批处理文件将做到这一点。