C# 为什么即使DLL已经在exe文件的同一文件夹中,我仍然需要注册它们

C# 为什么即使DLL已经在exe文件的同一文件夹中,我仍然需要注册它们,c#,dll,C#,Dll,当我们编译一个应用程序并将其依赖的DLL放在exe文件的同一文件夹中时,应用程序应该可以毫无问题地运行。但为什么我们仍然需要使用regsvr32命令注册这些依赖DLL?我在这里迷路了。简而言之,您不需要注册DLL就可以使用它们。唯一的例外是COM和ActiveX DLL,它们需要向注册表添加某些键。对于普通DLL(包括.NET类库),您只需要知道DLL的路径。简单的回答是,您不需要注册DLL即可使用它们。唯一的例外是COM和ActiveX DLL,它们需要向注册表添加某些键。对于普通DLL(包括

当我们编译一个应用程序并将其依赖的DLL放在exe文件的同一文件夹中时,应用程序应该可以毫无问题地运行。但为什么我们仍然需要使用regsvr32命令注册这些依赖DLL?我在这里迷路了。

简而言之,您不需要注册DLL就可以使用它们。唯一的例外是COM和ActiveX DLL,它们需要向注册表添加某些键。对于普通DLL(包括.NET类库),您只需要知道DLL的路径。

简单的回答是,您不需要注册DLL即可使用它们。唯一的例外是COM和ActiveX DLL,它们需要向注册表添加某些键。对于普通DLL(包括.NET类库),你所需要知道的就是DLL的路径。

这可能就是你要找的:实际上这一个准确地回答了你的问题:@dotNET-我选择了第一个,因为它与COM方面更相关。这可能就是你要找的:实际上这一个准确地回答了你的问题:@dotNET-我选择了第一个更多关于COM方面。那么我的问题是。。。COM/ActiveX DLL为何如此特殊?@MKYung:COM DLL包含执行组件注册的
DllRegisterServer
实现(基本上它将组件GUID添加到HKEY_CLASSES\u根注册表项),以允许
CoCreateInstance
找到正确的服务器组件。你可以在我在OP中发布的第一个链接中找到更多细节。然后我的问题是。。。COM/ActiveX DLL为何如此特殊?@MKYung:COM DLL包含执行组件注册的
DllRegisterServer
实现(基本上它将组件GUID添加到HKEY_CLASSES\u根注册表项),以允许
CoCreateInstance
找到正确的服务器组件。你可以在我在OP中发布的第一个链接中找到更多细节。