有些时候我们需要注册一个或多个程序集到GAC(全局程序集缓存)中,通常有下面几种方式完成注册。
1、打开VS自带的命令行窗口注册。
2、通过批处理文件执行命令注册。
3、直接拖入GAC中。(据说这种方式是不推荐的,可能有损GAC的逻辑结构;使用过程中可能会发生一些不确定问题。)
如果使用第一种方法,可以不需知道gacutil.exe所在位置。通过如下命令形式即可完成。
gacutil.exe -i J:\Project\HealthCare\Reference\System.Web.Extensions.dll 蓝色部分为程序集所在目录及文件名。这里需要提醒一下,在打开VS自带命令窗口时,如果是域账户登陆地话,请右击命令图标已管理员身份运行,这样才可以注册成功。如果本机登录应该不需这样操作了。有时可能你会注册多个或批量程序集,如果使用这种方式,显得效率太低了。那就推荐你使用第二种方法了。
如果使用第二种方法的话,你就需要知道gacutil.exe所在位置,或者你有这工具。
具体你可以用记事本等新建一*.bat文件;在里面编写如下命令:
@SET GACUTIL="C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe"。
Echo Install the dll into GAC
%GACUTIL% -if bin\debug\System.Web.Extensions.dll
红色部分为Win7上gacutil.exe、sn.exe两文件的所在目录。 如果是XP系统位置可能在:C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\下。
注意:这里if bin是相对目录;要把bat文件放在bin文件夹所在目录。
除上面这批处理命令写法,你也可以这样:把gacutil.exe和gacutil.exe.config两文件拷出来放入一目录;让后把你需要注册的dll程序集一起放到同一目录下。
命令可以如下:
gacutil -i Infragistics35.Web.v10.2.dll
gacutil -i Infragistics35.WebUI.Documents.v10.2.dll
gacutil -i Infragistics35.WebUI.Excel.v10.2.dll
............
pause
这里还要说一下:如果域账户登录,请以管理员身份运行系统命令行窗口;通过cd命令进入bat所在目录,输入bat文件名去执行。
如果使用第三种方法,这里就不多说了(不推荐);但有网友说拖进去再注册应该就没问题了(可以试试)。
如果卸载可以使用 gacutil -u System.Web.Extensions命令,注意不是gacutil -u System.Web.Extensions.dll 后面不要跟啥扩展名。
至于这里提到的sn.exe这个工具?这里有篇文章可供参考学习:http://www.cnblogs.com/Garyyang/archive/2009/09/03/1559483.html
Kevin Chen
2012-05-11 于苏州太仓