C# 在VC+中使用COM-dll+;动态链接库

C# 在VC+中使用COM-dll+;动态链接库,c#,visual-c++,com,C#,Visual C++,Com,我在C#.net中创建了一个COM dll,并从VCPP代码中调用了一个COM dll方法 COM dll的创建也会导致tlb文件的创建,在阅读相关内容后,我发现需要使用regasm注册tlb文件,以便为其创建注册表项 现在,如果我在未安装Microsoft Visual Studio的计算机上运行该应用程序,那么我将无法使用regasm注册tlb文件,并且当我尝试使用regsvr32注册tlb文件时,也会显示错误消息 有解决方法吗?您不需要注册.tlb文件-您必须使用regasm和/codeb

我在C#.net中创建了一个COM dll,并从VCPP代码中调用了一个COM dll方法

COM dll的创建也会导致tlb文件的创建,在阅读相关内容后,我发现需要使用regasm注册tlb文件,以便为其创建注册表项

现在,如果我在未安装Microsoft Visual Studio的计算机上运行该应用程序,那么我将无法使用regasm注册tlb文件,并且当我尝试使用regsvr32注册tlb文件时,也会显示错误消息


有解决方法吗?

您不需要注册.tlb文件-您必须使用
regasm
/codebase
参数来注册COM.dll文件。您需要在希望通过COM使用COM.dll的每台计算机上运行
regasm
regasm
随.NET framework一起提供和安装,因此如果它不可用,则意味着您无法使用COM DLL,因为后者仍然需要.NET运行时


另请参阅。

我已经在开发人员计算机上完成了开发,现在我想在未安装visual studio的windows server 2008上测试它,并获取所有二进制文件(依赖的dll、COM dll和tlb文件以及用VCPP编写的.exe文件以调用COM方法),你能告诉我如何测试EXE吗?你需要在那台机器上安装VC++可再发行版和.NET框架。您必须在那里复制.dll和.exe程序,向regasm注册.dll并运行.exe。谢谢您的帮助!!我可以使用Regasm.exe注册COM dll,但当我尝试在64位计算机上注册相同的COM dll时,我收到以下异常Regasm:错误RA0000:无法加载“C:\Binaries\GCOM.dll”,因为它不是有效的.NET程序集。我使用下面的命令来注册dll G:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe GCOM.dll/tlb:GCOM.tlb/codebaseGet!!我可以在64位机器上注册它。使用任何CPU构建COM dll。