Hel*_*ios 11 .net c# dllregistration
是否有必要在目标计算机上注册已编译的DLL(用C#.NET编写).
目标机器将安装.NET,是否足以简单地将DLL丢弃到目标机器上?
Jor*_*oba 32
我觉得你有点困惑.为了使用它,从未需要注册dll.
使用dll只需要加载它(给定一个已知位置或库是否在系统路径中)并获取您想要使用的函数的地址.
在分发需要将某些条目添加到Windows注册表的COM或ActiveX对象时,使用了注册dll.为了使用COM服务(例如),您需要引用GUID(即唯一标识符),它允许您获取实现服务的dll句柄(或提供对它的访问).有时您可以参考完全限定的名称并获得相同的结果.
为了使所有这些工作,需要注册dll.这个"注册"过程只是在注册表中创建了几个条目,但主要是这两个:一个将GUID与dll的位置相关联(这样你就可以通过GUID引用它而不知道它到底在哪里)和第二个将全名与GUID相关联.但同样,这仅适用于COM或ActiveX对象.
在.NET中开发应用程序时,项目中引用的库会在需要时自动加载,而不必担心找到或加载它们.为此,框架检查引用库的两个位置.
GAC(全局程序集缓存)允许您有效地注册要在整个系统中使用的dll,并作为旧注册机制的演变.
所以基本上你只需要将dll放在应用程序的同一个文件夹中.
您需要将其"删除"到需要它的应用程序才能找到它的目录中.
如果有多个应用程序,或者您希望将文件"删除"到应用程序目录以外的某个位置,则通常需要调整PATH变量,或者在全局程序集缓存(GAC)中注册程序集.