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

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

                            老帅

   先上图,看真相,如下:

一、问题描述

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

二、追根溯源

   经过研究,发现这个文件是SQLServer2012的一个运行时支持库,存在于SQLSysClrType.msi中,下载地址如下:

http://www.microsoft.com/zh-cn/download/details.aspx?id=43339
  
   包含x86和x64两个版本,请根据自己的需要使用。

三、使用方法

   当然,我们可以把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展示给你的看的目录不同:

为了把文件拿出来, 你需要使用命令行:

这样就可以拿到你需要的动态库了!!!

时间: 2024-10-14 04:52:28

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

未能加载文件或程序集“Microsoft.SqlServer.Sqm, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”或它的某一个依赖项。系统找不到指定的文件。 (SqlMgmt)

解决方法: Copy this file "Microsoft.SqlServer.Sqm.dll" in the forder "C:/Program Files/Microsoft SQL Server/100/Shared" to "C:/Program Files/Microsoft SQL Server/100/Tools/Binn/VSShell/Common7/IDE" and "C:/Program Files (x86

Could not load file or assembly 'Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0 系统找不到指定的文件。

环境: web服务器: ip:192.168.1.32 ,安装有 Visual Studio Premium 2013 操作系统: Microsoft  Server 2008 r2+sp1 数据库服务器: ip:192.168.1.33,安装有Microsoft SQL Server 2012 操作系统: Microsoft  Server 2008 r2+sp1 操作过程: 在vs2013里利用向导SqlDataSource配置数据库连接时,点击测试连接提示成功,当点击确定时报错: ----

打开MSSQL 2008 R2的时候,展开数据库都显示以下的错误提示: 值不能为空。参数名viewinfo(microsoft.sqlserver.management.sqlstudio.explorer)

打开MSSQL 2008 R2的时候,展开数据库都显示以下的错误提示: 值不能为空.参数名viewinfo(microsoft.sqlserver.management.sqlstudio.explorer) 解决办法:根据下面的路径 : C:\Users\你的用户名\AppData\Local\Temp\"文件夹建好命名为 2 的文件夹,如果是找不到user这个文件夹,就找到C:\Documents and Settings\Administrator\Local Settings\Temp这

VS编程中找不到Microsoft.Office.Core、Microsoft.Office.Interop.Word和VBIDE

在使用vs2005. vs2008. vs2010 制作包含 word等office的应用程序时,有时找不到对Microsoft.Office.Core. Microsoft.Office.Interop.Word和VBIDE 三个文件的引用,此时,如果已经安装了office 2003,那么可能是选择“典型安装”或者是“最小化安装”,那需要从“控制面板”中将其删除,然后再次安装,并选择“完全安装”,安装之后再使用以下两 种方法之一即可. 在选择“完全安装”office 2003 后,使用以下两种

[email protected]创建 userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings

System.Configuration.ConfigurationErrorsException: 创建 userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings 的配置节处理程序时出错: 未能加载文件或程序集“System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项.系统没找到指定的文

Microsoft SQLServer有四种系统数据库

Microsoft SQLServer有四种系统数据库: 1.master数据库 master数据库记录SQLServer系统的所有系统级别信息.它记录所有的登录帐户和系统配置设置.master数据库是这样一个数据库,它记录所有其它的数据库,其中包括数据库文件的位置.master数据库记录SQLServer的初始化信息,它始终有一个可用的最新master数据库备份. 2.tempdb数据库tempdb数据库保存所有的临时表和临时存储过程.它还满足任何其它的临时存储要求,例如存储SQLServer

com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect

问题描述:最简单的数据库连接报错,到主机  的 TCP/IP 连接失败.(win 7 操作系统) 错误信息: com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败. java.net.ConnectException: Connection refused: connect package sqlconnect; import java.sql.*; public class sqlconnect { public

安装SQL2008 提示 创建usersettings/microsoft.sqlserver.configuration.landingpage.properties.se

System.Configuration.ConfigurationErrorsException: 创建 userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings 的配置节处理程序时出错: 未能加载文件或程序集“System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项.系统没找到指定的文

warning MSB3162: 所选的“Microsoft Report Viewer 2012 Runtime”项需要“Microsoft.SqlServer.SQLSysClrTypes.11.0”。在“系统必备”对话框中选择缺少的系统必备组件,或者为缺少的系统必备组件创建引导程序包。

warning MSB3162: 所选的"Microsoft Report Viewer 2012 Runtime"项需要"Microsoft.SqlServer.SQLSysClrTypes.11.0".在"系统必备"对话框中选择缺少的系统必备组件,或者为缺少的系统必备组件创建引导程序包. 发布ReportViewer程序遇到这个问题. 到处查了下,发现解决方法是这样的. 1)打开这个路径下的xml文件: C:\Program Files (x