我写了一个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。
由于
答案 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)
答案 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)”没有出现在添加/删除程序中,请安装它。