将dll添加到GAC(Global Assembly Cache)中
转载: http://www.cnblogs.com/bluesky4485/archive/2010/03/31/1701744.html
由于公司开发工具版本不统一,有使用VS2005的,有 VS2008的,有VS2010的,这样代码共享的时候就会存在问题。不可能把所有的版本的工具都安装上。所以最后的方式就是在代码中把其他几种的解决方 案和工程文件都放一个,这样人家就可以选择相应的版本去打开工程。这种直接改的方式前提条件是程序都是编译成2.0版本的,且没有使用高版本的语言特性, 否则用低版本打开的时候可能编译不过。
解决方案Sln文件 | 工程文件csproj文件 | |
VS2005 | Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
VS2008 | Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> |
VS2010 | Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> |
简单的这么修改一下应该就可以打开相应的解决方案的。
怎么样将一个dll加载到GAC中去咧?之前遇到过一个问题就是Oracle.DataAccess.dll的问题,本身机子上面安装了10G,但是后来 知道11G中提供的Oracle.DataAccess.dll中包含一个新方法OracleBulkCopy,类似.net中专门用于Sql Server的SqlBulkCopy。那个时候是想直接拿那个dll拿来直接用的,可写了一个示例程序运行的时候却出现错误, 就是说dll要注册到GAC中去才行。那个郁闷啊,恨的心痒痒的。可能是我比较迟钝吧,后来才想到一个可能就是GAC里面的那个 Oracle.DataAccess.dll版本和程序中引用的不一致导致的错误。
其实.net自带的就有一个工具可以将dll注册到 GAC中去的,以前一直没关注过。gacutil.exe。开始菜单-Microsoft Visual Studio -Visual Studio Tools-Visual Studio 2008 命令提示,在控制台中输入 gacutil.exe 回车,既可以看到一些参数。
一般要安装dll到GAC中的话选择-i参数即可,后面跟上dll文件的完整路径。
例如:
gacutil.exe -i E:\ODP.NET\bin\2.x\Oracle.DataAccess.dll
这样的话这个dll就被注册到GAC里面去了,有一个不好的就是这个路径不能再改变了,比较好的一个替代方法就是将dll直接copy到C:\WINDOWS\assembly这个目录下,再去注册。
如果你想要知道一个注册到GAC的dll的一些信息的话,比如Version, Culture, PublicKeyToken等也可以使用gacutil.exe -l去查看。具体的一些其他使用看上面的图就知道了。
嘿嘿,以后可以随便网GAC里面注册dll了咧。省去不少麻烦啊。
希望对各位有用,没用也就当自己做过备忘吧,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述