找不到microsoft.sqlserver.batchparser.dll

Nic*_*hac 17 sql-server asp.net

我写了一个asp.net Web应用程序,它使用SMO对抗SQL Server 2008,以便能够运行一些数据库脚本.它引用这些程序集(在C:\ Program Files\Microsoft SQL Server\100\SDK\Assemblies文件夹中):

Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Run Code Online (Sandbox Code Playgroud)

microsoft.sqlserver.batchparser.dll不在此文件夹中.本地(32位机器,IIS7)我没有问题.

当我将应用程序发布到我的托管服务提供商(discountasp.net,SQL Server 2008,IIS7,32位)时,我收到此错误:

无法加载文件或程序集'Microsoft.SqlServer.BatchParser,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一.该系统找不到指定的文件.

我搜索了我的本地机器,我找不到这个组件.但它在这台机器上运行良好.

"Microsoft SQL Server 2008安装发现报告"工具报告我在本地安装了v10.1.2531.0.

谢谢

adr*_*nks 10

要获取此DLL,您需要安装Microsoft SQL Server 2008管理对象(可从此处获得).该特定的DLL已安装到GAC中,这就是您可能无法使用搜索找到它的原因.

当您使用托管服务提供商时,它们似乎没有安装.您的选择是由他们安装(这可能不太可能),或手动部署DLL(可能是在狡猾的许可证上).

  • @Nicolas:根据[this](http://blogs.msdn.com/b/mwories/archive/2005/05/02/smofaq.aspx)页面,该特定的dll是特定于平台的(即两者都有) 32位和64位版本). (3认同)

evi*_*lom 6

首先,您需要启用浏览GAC文件夹:

1.转到注册表编辑器(RUN> regedit)
2.转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion
3.右键单击Fusion> NEW> DWORD
4.键入DisableCacheViewer
5.双击DisableCacheViewer
6.将值设置为1

然后您可以在此处找到它
C:\ Windows\assembly\GAC_32\Microsoft.SqlServer.BatchParser\10.0.0.0__89845dcd8080cc91