安装一个c#com dll,供vbscript经典asp网站使用

安装一个c#com dll,供vbscript经典asp网站使用,c#,dll,vb6,C#,Dll,Vb6,我有一个带有vb6 dll的经典ASP网站,一切都还可以,但现在我有了一些额外的功能,这些功能已经用c#嵌入COM dll中完成了。在开发环境中,这是可行的,但现在我希望将此DLL移动到另一台机器上 我的问题是这样做的最佳方式是什么 我看到过诸如“将其添加到GAC”或“需要一个强有力的名字”等答案 好的旧regsvr32发生了什么事?regsvr32今天仍然相关,但您不能将其与.NET一起使用,只能使用本机DLL。NET有一种特殊的方法来注册COM类型,我们很快就会看到 Regsvr32通过调用

我有一个带有vb6 dll的经典ASP网站,一切都还可以,但现在我有了一些额外的功能,这些功能已经用c#嵌入COM dll中完成了。在开发环境中,这是可行的,但现在我希望将此DLL移动到另一台机器上

我的问题是这样做的最佳方式是什么

我看到过诸如“将其添加到GAC”或“需要一个强有力的名字”等答案


好的旧regsvr32发生了什么事?

regsvr32今天仍然相关,但您不能将其与.NET一起使用,只能使用本机DLL。NET有一种特殊的方法来注册COM类型,我们很快就会看到

Regsvr32通过调用DllRegisterServer导出来工作DllRegisterServer为库提供了注册COM类的机会;类型库;接口等。此导出不存在于由.NET创建的.dll中,这是有意义的,因为默认情况下它们不是COM。如果在Dependency Walker/Viewer中打开.NET或非.NET.dll,您可以很容易地看到这些差异

这里是我以前做的一个本地C++ + ActiveX DLL(注意<强> DLRealServer Server < /Stutt>右出口):

这是一个托管的.dll。(注意,没有导出更不用说DllRegisterServer了):

如果已将c#类标记为COM可见,则可以通过调用以下命令完成COM注册:

regasmassemblyFile[选项]

这将把必要的条目放入Windows注册表


不需要GAC,因为本机COM客户端(VB6)不使用GAC

regsvr32是COM的实用工具。正如您所写的,您需要将其安装到GAC,以便从.NET应用程序访问它。@Ivan-他正在询问如何在本机客户机中使用它,例如“vbscript…vb6”,而不是从.NET应用程序。因此,只需将dll放在任何地方,并调用regasm进行注册即可。只要安装了.NET即可。是:)