最近在搞集成二次开发总会碰到考验基础知识的问题。记录一下:
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 中。