无法加载Microsoft.SqlServer.BatchParser或其中一个依赖项

Ale*_* Dn 12 sql-server visual-studio-2010 sql-server-2008

我知道这个问题被问了很多次,我在谷歌上找到了很多关于这个问题的信息,但我仍然无法解决我的DEV PC上存在的问题:(
我在每一页上都有这个丑陋的错误信息(无法加载文件或程序集Microsoft.SqlServer.BatchParser).我按照许多互联网资源的建议安装了Microsoft SQL Server 2005管理对象集合,但没有帮助.然后我尝试安装Microsoft SQL Server 2008管理对象,但它说它无法安装,因为已经存在更新的版本(我安装了SQL Server 2008).
然后我去了GAC,发现以下几行:
Microsoft.SqlServer.BatchParser,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91,processorArchitecture = AMD64

Microsoft.SqlServer.BatchParser,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91,processorArchitecture = AMD64

Microsoft.SqlServer.BatchParser,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91,processorArchitecture = x86

Microsoft.SqlServer.BatchParser,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91,processorArchitecture = x86

Microsoft.SqlServer.BatchParserClient,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91,processorArchitecture = MSIL < - 版本9.0.242.0是否存在?

我已经花了大约半天的时间才找到一个没有成功的解决方案,当intellisense由于那个错误而无法工作时,使用VS非常糟糕.

我安装了VS 2010 SQL Express 2005和SQL Server 2008(参见配置屏幕截图) 在此输入图像描述

请帮帮我解决这个问题!谢谢.

Sud*_*hra 6

*注意:此答案适用于从C#程序使用MS SQL SMO(管理对象)的人员.我正在努力解决问题中提到的错误.我得到的确切错误是这样的:

无法加载文件或程序集"Microsoft.SqlServer.BatchParser.dll"或其依赖项之一.动态链接库(DLL)初始化例程失败.(HRESULT异常:0x8007045A)

它最终成为在.NET 4.0(或更高版本)CLR中运行.NET 2.0程序集的问题.sql server SMO程序集是针对运行时的v2.0.50727构建的,因此app.config(或web.config)中需要以下部分

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
Run Code Online (Sandbox Code Playgroud)

PS:提示是在MSDN论坛上的讨论主题中.


小智 5

您是否在Management Studio或Visual Studio中看到此错误?你什么时候收到此错误消息?问题可能是由于32位与64位交互引起的

956178在基于Itanium的Windows版本上运行32位版本的SQL Server 2008时出现错误消息:"系统找不到指定的文件" http://support.microsoft.com/kb/956178/EN-US

如果您使用的是64位系统,请确保安装了64位版本的更新管理对象.


Jua*_*mez 5

此时 2020 年 2 月 8 日 smo 16 解决了问题。

Install-Package Microsoft.SqlServer.SqlManagementObjects -Version 160.1911221.0-preview

仍在预览中,但效果很好


NG.*_*NG. 3

您在通过 Visual Studio 执行应用程序时一定会收到此错误。我过去曾遇到过此错误,但经过一些解决方法后已解决,例如

  1. 删除不需要的 BatchParser 引用(如果它存在于 web.config 中)。
  2. 使用了一些第 3 方 dll,这可能会导致应用程序出现此错误。
  3. 您可能从其他页面复制了 aspx 页面,但忘记更改“继承”部分。