码迷,mamicode.com
首页 > 数据库 > 详细

了解GAC:从“找不到Microsoft.SqlServer.SqlClrProvider.dll”的问题开始

时间:2014-12-11 14:06:22      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:sqlserver smo micros

了解GAC:从“找不到Microsoft.SqlServer.SqlClrProvider.dll”的问题开始
                            老帅
   先上图,看真相,如下:
bubuko.com,布布扣

一、问题描述
   我使用Microsoft.SqlServer.Smo开发了一个数据库管理工具,根据定制的需求,完成对SQLServer的管理。部署到客户机以后,就提示上述错误。而这个文件在我本机上使用全盘搜索,无论如何也搜索不到。

二、追根溯源
   经过研究,发现这个文件是SQLServer2012的一个运行时支持库,存在于SQLSysClrType.msi中,下载地址如下:
   http://www.microsoft.com/zh-cn/download/details.aspx?id=43339
bubuko.com,布布扣  
   包含x86和x64两个版本,请根据自己的需要使用。
bubuko.com,布布扣

三、使用方法

   当然,我们可以把SQLSysClrType.msi安装到客户机中使用,其实我们只需要这个动态库文件而已:

   Microsoft.SqlServer.SqlClrProvider.dll
   事实上只需要把这个文件和我们的exe一起部署到客户机即可,但是安装完SQLSysClrType.msi之后,我们在本机上仍然搜索不到这个动态库。
   原来这个文件安装在系统的GAC中!!!

   什么是GAC?
   微软为提高系统安全,自Vista推出后,在Windows系统中加入了一个新的东东——UAC(User Account Control),这样一个新的技术使得许多操作都受到了约束,尤其是对系统设置、文件的修改,Win7作为一个衍生品,也受到了UAC的保护。
   在.NET项目开发中,针对一些类库项目或用户控件项目,当程序开发完成后,有时需要将开发的程序集,安装部署到GAC(Global Assembly Cache)中,以便其他的程序也可以调用。
   通常,将程序集安装到GAC有两种方法:
   1、将程序集(dll文件)手动拖至 C:/Windows/assembly 文件夹中。
   2、利用命令行或者全局程序集缓存工具Gacutil进行安装。

   原来如此!
   GAC的目录在c:\windows\assembly, 而这个目录是不允许你直接复制粘贴的,只能使用命令行,你会发现GAC的目录结构与Windows Explorer展示给你的看的目录不同:
bubuko.com,布布扣
bubuko.com,布布扣
   为了把文件拿出来, 你需要使用命令行:
bubuko.com,布布扣     
   这样就可以拿到你需要的动态库了!!!
 



了解GAC:从“找不到Microsoft.SqlServer.SqlClrProvider.dll”的问题开始

标签:sqlserver smo micros

原文地址:http://blog.csdn.net/shuaihj/article/details/41865237

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!