http://www.cnblogs.com/bluesky4485/archive/2010/03/31/1701744.html
GAC按照签名来定位程序集,跟文件夹无关。不能安装配置文件。
在我的硬盘上 c:\Windows\assembly\GAC_MSIL\Policy.14.0.Microsoft.Office.Interop.Word\15.0.0.0_
_71e9bce111e9429c 就有两个文件一个dll,一个config文件。应该是office 2013的,但是不知道怎么部署进去的。
@ITPuppy: 大哥这篇文章中有说啊:
gacutil.exe -i E:\ODP.NET\bin\2.x\Oracle.DataAccess.dll
这样的话这个dll就被注册到GAC里面去了,有一个不好的就是这个路径不能再改变了,比较好的一个替代方法就是将dll直接copy到C:\WINDOWS\assembly这个目录下,再去注册。
你的程序集的物理路径和注册路径可以相同啊,可以拷贝啊,但是拷贝后还得注册啊。
@Launcher: 我知道怎么把一个dll注册到GAC,但是不知道怎么把多个gac注册到同一个文件夹下。用以上命令,会在gac目录下生成一个文件夹,用来存放这个dll。
@ITPuppy: 不行。
@Launcher: 这个文件夹下就有两个dll,为什么弄两个
@ITPuppy: 拷贝进去,再注册。
@Launcher: 网上看到的都是用gacutil注册,拷贝进去再注册,它会不会在另外一个地方新建一个文件夹。btw,有一个dll用reflector打不开
@ITPuppy: 会不会新建你得看你的文件夹名称是否和注册自动生成的不一样。打不开,说明是Win32 DLL,非托管代码的,你可以用 depends.exe 来查看,同时也说明,这个DLL是没法注册到GAC的,而是因为被同目录的托管程序集引用。因此,此DLL要么拷贝到System32,要么就必须和调用程序集在同一个目录。
@Launcher: 明白了,看来一个文件夹只能注册一个,其他的都是因为需要引用才放到那的,并非是通过注册过去的。谢谢你
你可以手动拖dll到gac或者使用GACUtils工具将dll安装到gac。但是要注意能安装到gac的dll必须是强名称签名。请参考http://www.cnblogs.com/xx_cs/archive/2011/07/12/2104019.html
强名称程序集由:<程序集名称>, <版本号>, <区域性>, <公钥标记> 4部分组成,只要一部分不一样哪怕同名也可以放入gac
非复制,我问的是部署多个dll在同一个文件夹