找不到microsoft.sqlserver.batchparser.dll,怎么处理?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我编写了一个ASP.NETWeb应用程序,它使用SMO针对SQLServer 2008运行一些DB脚本。它引用这些程序集(在C:\ProgramFiles\MicrosoftSQLServer\100\SDK\Assembies文件夹中):

Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo

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

当我将应用程序发布到我的托管提供商(DisCountASP.NET、SQLServer 2008、IIS 7、32位)时,我会得到以下错误:

Could not load file or assembly 'Microsoft.SqlServer.BatchParser, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.

我搜查了我的本地机器,找不到这个组装。然而,它在这台机器上工作得很好。

“MicrosoftSQLServer 2008安装发现报告”工具报告说,我已经在本地安装了10.1.2531.0版本。

提问于
用户回答回答于

首先,查看 GAC 文件夹:

1. 运行Registry Editor (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

用户回答回答于

要获得这个DLL,您需要安装MicrosoftSQLServer 2008管理对象。这个特定的DLL会被安装到GAC中。

由于您使用的是托管提供商,因此它们似乎没有安装此服务。您的选择是让它们安装它(这可能是不太可能的),或者手动部署DLL(这可能是在可疑的许可上)。

扫码关注云+社区