找不到microsoft.sqlserver.batchparser.dll

时间:2010-10-20 18:22:38

标签: asp.net sql-server

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

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

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

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

  

无法加载文件或程序集   “Microsoft.SqlServer.BatchParser,   版本= 10.0.0.0,文化=中立,   PublicKeyToken = 89845dcd8080cc91'或   其中一个依赖项。系统   找不到指定的文件。

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

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

由于

10 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:6)

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

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

那么你可以在这里找到它
C:\的Windows \组件\ GAC_32 \ Microsoft.SqlServer.BatchParser \ 10.0.0.0__89845dcd8080cc91

答案 2 :(得分:3)

我有一个类似的问题,但有R2。对我来说,它可以通过安装Microsoft®SQLServer®2008R2共享管理对象和SQLServer®2008R2的相关Microsoft®SystemCLR类型来实现。

在此处查找http://www.microsoft.com/en-us/download/confirmation.aspx?id=16978

答案 3 :(得分:2)

您还需要在托管服务提供商上安装SMO组件。您可以下载它们here

答案 4 :(得分:0)

您也可以从SQL Server DVD安装SQL客户端连接功能。我安装了该组件以及SDK组件,以便在安装SolarWinds时解决此问题。

答案 5 :(得分:0)

我安装了SMO x64,但构建服务器上需要SMO x86。

答案 6 :(得分:0)

我只解决此问题,只需在Project上单击鼠标右键,然后导航到“属性”,并将平台目标从“ Any”更改为“ x86”

failed to load microsoft.sqlserver.batchparser

答案 7 :(得分:0)

 Connections {
    target: mainmywindow
    onMatchChangedQMLL: {
        lbl0.text = "" + Number(mainmywindow.nbMatch) + " -> " + qsTr(mainmywindow.getFirstMatch()) // WORKS
        lbl1.text = "" + Number(mainmywindow.nbMatch) + " -> " + qsTr(mainmywindow.getFirstDate().toString()) // DOES NOT WORK
    }
 }

答案 8 :(得分:0)

今天这件事发生在我身上。以管理员身份运行对我来说是成功的诀窍,我不确定为什么。

对于生产而言,它不是理想的选择,但对于开发环境而言,它可能仅能正常工作。

答案 9 :(得分:0)

如果“Microsoft Visual C++ 2013 Redistributable (x86)”没有出现在添加/删除程序中,请安装它。