在目标机器上部署C# .NET编写的已编译DLL文件,是否需要进行注册?
目标机器已安装.NET,仅仅将DLL文件拷贝至目标机器中是否足够?
在目标机器上部署C# .NET编写的已编译DLL文件,是否需要进行注册?
目标机器已安装.NET,仅仅将DLL文件拷贝至目标机器中是否足够?
我认为你有点混淆了。注册dll从来不是使用它所必需的。
仅需要加载dll(如果已知位置或库在系统路径中)并获取您想要使用的函数的地址即可使用dll。
注册dll是用于分发需要向Windows注册表添加某些条目的COM或ActiveX对象。要使用COM服务(例如),您需要引用GUID — 即唯一标识符,该标识符允许您获取实现服务的dll的句柄(或提供对其的访问)。有时,您可以引用完全限定名称并获得相同的结果。
为了使所有这些工作正常,必须注册dll。此“注册”过程只是在注册表中创建几个条目,但主要包括以下两个:一个将GUID与dll的位置关联起来(以便您可以通过GUID引用它,而不必知道其确切位置),第二个将完整名称与GUID相关联。但再次强调,这仅适用于COM或ActiveX对象。
当您在.NET中开发应用程序时,在项目中引用的库会在需要时自动加载,无需担心定位或加载它们。为了做到这一点,框架会检查两个位置以查找所引用的库:
GAC(全局程序集缓存)允许您有效地注册要在整个系统中使用的dll,并作为旧注册机制的演进。
所以基本上,您只需要将dll放在应用程序的同一文件夹中即可。
如果您希望通过com+访问程序集。一个例子是从非 .NET 应用程序(如 VB6 Winforms 应用程序)中使用在 .NET 程序集中定义的类型。
如果您计划从另一个 .NET 应用程序访问程序集,则无需采取任何措施。如果您的程序集具有强名称,将其放入 GAC 可能是个好主意。否则,只需将其放入将引用它的应用程序所在的目录中即可。
http://code.msdn.microsoft.com/SEHE
所讨论的.dll文件需要在构建应用程序的系统上注册,以使其正常工作。但是一旦您构建了您的项目,就不需要在部署应用程序或程序的任何系统上注册该.dll文件。