我需要在安装程序中使用gacutil.exe把一个DLL添加到GAC,但不幸的是gacutil.exe在.net 2.0中没有了,它只存在于VS里。但客户机器上不一定装有VS,且有网友说gacutil.exe不能单独使用,貌似现在只能通过VS自带的安装布署来解决这个问题:利用Visual Studio制作安装包的时候,添加一个安装项目,进入文件系统编辑器,右击左侧的“目标计算机上的文件系统”——添加特殊文件夹——Global Assembly Cache文件夹,左侧添加了Global Assembly Cache文件夹,在右侧添加要输出的程序集即可但VS做成的安装包有个致命缺点:就是它有两个文件!我一直是用NSIS的,杯具了!怎么办??
难道只能用VS自带安装布署么?(强大的微软VS为什么不能生成单一安装包呢,orz..)
难道只能用VS自带安装布署么?(强大的微软VS为什么不能生成单一安装包呢,orz..)
call "C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
gacutil /i APP_Mht.dll
regasm APP_Mht.dll
pause
上面的gacutil和regasm分别位于VS和系统.net目录里。这样就产生一个很严重问题:安装程序时客户机器上不一定装有VS(.net2还好说,20多M,替用户装了,VS可是2G多)最后抱着必死之决心,将gacutil和regasm分别拷贝进system32,然后运行下面内容bat(也在system32)
gacutil /i APP_Mht.dll
regasm APP_Mht.dll
pause让我惊喜万分的是,居然全部显示成功了
等明天偶到朋友机器上再测试,就可以做最后结论^^万分感谢MS赋予gacutil和regasm独立性