asp.net 注册/安装DLL到GAC和直接复制到bin有何区别

最近在搞集成二次开发总会碰到考验基础知识的问题。记录一下:

1、DLL 是动态链接库,一个项目里有N多个DLL。在C#里每个类库都会生成一个.DLL文件,放在项目BIN目录下。

2、什么是GAC:全称(Global Assembly Cach)俗称全局程序集缓存。你可以在你的电脑的系统盘如:C:\Windows\assembly\看到目前计算机上安装的GAC。

GAC的作用是可以存储一些有多个应用都要用到的公共的Assembly(程序集/dll)。这样,多个应用就可以从GAC中取得 Assembly,而不需要在所有应用中把要用到的Assembly都拷贝到应用程序的相关目录下面(比如:Windows应用程序的Debug目录,ASP.NET的bin目录)。

 

     安装到GAC和直接复制到项目的本质区别在于:相对于服务器来说安装是全局性质的,而直接复制是以项目为作用域的。例如:服务器同时有项目A和项目B,并同时引用DBHelp.dll.如果直接安装到GAC则项目A、B部署的时候BIN里则可以不用复制DBHelp.DLL了。

 

      注册到GAC2种办法:可按照如何在 Visual Studio 中设置部署属性中的说明设置项目属性,从而在部署程序集时将其自动安装到 GAC 中。此外,还可以按照如何在 GAC 中安装程序集中的说明,使用 Visual Studio 附带的 Gacutil 命令行工具将程序集手动安装到 GAC 中。

 

posted @ 2015-03-27 10:49  东江水  阅读(73)  评论(0编辑  收藏  举报