14

この質問が何度も寄せられたことは知っていますし、Google でこの問題に関する多くの情報を見つけましたが、まだ私の DEV PC に存在する問題を解決できません :(
すべてのページにその醜いエラーメッセージがあります

ファイルまたはアセンブリを読み込めませんでした Microsoft.SqlServer.BatchParser

多くのインターネット リソースでアドバイスされているように、 Microsoft SQL Server 2005 Management Objects Collectionをインストールしましたが、役に立ちませんでした。

次に、Microsoft SQL Server 2008 Management Objectsをインストールしようとしましたが、新しいバージョンが既に存在するためインストールできないと表示されます (SQL Server 2008 がインストールされています)。

それからGACに行き、次の行を見つけました:

Microsoft.SqlServer.BatchParser、バージョン = 10.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 89845dcd8080cc91、processorArchitecture = AMD64

Microsoft.SqlServer.BatchParser、バージョン = 9.0.242.0、カルチャ = ニュートラル、PublicKeyToken = 89845dcd8080cc91、processorArchitecture = AMD64

Microsoft.SqlServer.BatchParser、バージョン = 10.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 89845dcd8080cc91、processorArchitecture = x86

Microsoft.SqlServer.BatchParser、バージョン = 9.0.242.0、カルチャ = ニュートラル、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 がインストールされています (構成のスクリーンショットを参照) ここに画像の説明を入力

この依存関係の問題はどのように解決できますか?

4

9 に答える 9

5

Management studio または Visual Studio でこのエラーが表示されますか? このエラー メッセージはいつ表示されますか? この問題は、ドキュメントに記載されている 32 ビットと 64 ビットの相互作用が原因で発生する可能性があります

956178 Windows の Itanium ベース バージョンで 32 ビット バージョンの SQL Server 2008 を実行すると、エラー メッセージ: "指定されたファイルが見つかりません" http://support.microsoft.com/kb/956178/EN-US

64 ビット システムを使用している場合は、更新された管理オブジェクトの 64 ビット バージョンがインストールされていることを確認してください。

于 2012-09-28T17:26:21.467 に答える
3

Visual Studio を介してアプリケーションを実行しているときに、このエラーが発生する必要があります。過去にこのエラーが発生しましたが、次のような回避策の後に解決されました

  1. BatchParser の不要な参照を削除します (web.config に存在する場合)。
  2. サードパーティの dll が使用されているため、アプリケーションでこのエラーが発生する可能性があります。
  3. aspx ページを他のページからコピーして、「継承」セクションを変更するのを忘れている可能性があります。
于 2012-09-28T03:20:52.797 に答える
2

アプリケーション プールの詳細設定に移動し、「32 ビット アプリケーションを有効にする」を TRUE に設定する必要がありました (64 ビット SQL Server を実行していました)。

于 2014-04-10T17:58:44.053 に答える
1

私はこれがかなり古い質問であることを知っていますが、これが他の誰かに役立つ場合に備えてMicrosoft.SqlServer.SqlManagementObjects、. それを使用しようとしたコードに到達すると、エラーが発生して爆発しました:C#NugetServerConnection.ConnectionContext.ExecuteNonQuery

"ファイルまたはアセンブリ 'Microsoft.SqlServer.BatchParser, Version=15.100.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' またはその依存関係の 1 つを読み込めませんでした。指定されたファイルが見つかりません。":"Microsoft.SqlServer.BatchParser 、バージョン = 15.100.0.0、カルチャ = ニュートラル、PublicKeyToken = 89845dcd8080cc91"

これは、うまくいけばNugetパッケージで修正されるバグです。

v15.0.600.33 を に手動で追加することで、エラーを回避しMicrosoft.SqlServer.BatchParserましたGAC。で を見つけましdllC:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\SQLCommon\150。このパスは、のインストールによって異なる場合がありますVisual Studio

配布していて、ユーザーがこれを に追加する必要がないようにする場合は、を参照としてプロジェクトGACに含めてください。dllC#

于 2019-12-13T21:05:33.210 に答える
0

私の場合、Visual Studio (2019) の C# プロジェクトのビルド設定でターゲット プラットフォームを x86 に設定することで、この問題を解決できました。

于 2021-06-03T08:43:29.313 に答える