2012-09-24 82 views
7

この質問は何度も尋ねられましたが、私はこの問題に関するGoogleの多くの情報を見つけましたが、私はまだDEVに存在する問題を解決できませんPC :(
I have that ugly error message on every page(ファイルまたはアセンブリMicrosoft.SqlServer.BatchParserをロードできませんでした)多くのインターネットリソースにアドバイスされているようにMicrosoft SQL Server 2005 Management Objects Collectionをインストールしましたが、役に立たなかったので、Microsoft SQL Server 2008 Management Objectsをインストールしようとしましたが、
私はGACに行って、次の行を見つけました:
Microsoft.SqlServer.BatchParser、Version = 10.0.0.0、Culture = neutral、PublicKeyTok EN = 89845dcd8080cc91、processorArchitecture = AMD64Microsoft.SqlServer.BatchParserまたはその1つの依存関係を読み込めませんでした

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、版? n = 10.0.0.0、Culture =ニュートラル、PublicKeyToken = 89845dcd8080cc91、processorArchitecture = MSIL < - バージョン9.0.242.0は存在するはずですか?

私はすでに成功していない解決策を見つけるのに約半日を費やしましたが、そのエラーのためにintellisenseが動作しないときはVSで作業するのは非常にうそです。

私は私がこの問題を解決するのに役立ちますVS 2010 SQL Expressの2005およびSQL Server 2008のインストール(設定のスクリーンショットを参照)enter image description here

を持っています!ありがとう。

答えて

2

Visual Studioでアプリケーションを実行する際にこのエラーが発生する必要があります。私は過去にこのエラーが発生しましたが、回避策の後に解決されました。

1)望ましくないBatchParser参照を削除します(web.configに存在する場合)。
2)このエラーによりアプリケーションを引き起こしているサードパーティのDLLが使用されています。
3)他のページからaspxページをコピーして、「継承」セクションを変更するのを忘れている可能性があります。

+0

1)ソリューションでBatchParserへの参照が見つかりませんでした。 2)いいえと思いますが、確かに確認できますか? 3)これはDBプロジェクトを含む古いソリューションで、ある時点でエラーが表示されるようになります。 –

+0

デバッガを配置し、エラーが発生した行を表示できますか? –

+0

処理にアタッチすると、現場でエラーは発生しません。 ASPXマークアップを編集するときに設計時にのみ、@Pageディレクティブ行に下線付き(エラーなど)が表示されます。上にマウスを置くと、BatchParserエラーが表示されます。コンパイルエラーまたはランタイムエラーは存在しません。 –

3

Management StudioまたはVisual Studioでこのエラーが表示されますか。いつこのエラーメッセージが表示されますか?この問題は、32ビットと64ビットの対話が原因で発生する可能性があります。

956178 ItaniumベースのWindowsで32ビット版のSQL Server 2008を実行すると、エラーメッセージ "システムではできません指定されたファイルを見つける」 http://support.microsoft.com/kb/956178/EN-US

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

+0

編集のためにASPXページを開くと、Visual Studioにエラーが表示されます。ファイルの先頭に、エラーメッセージが表示され、その後、intelisenceは機能しません。私はWindows 7 64ビット、SQL2008 32ビット、VS2010 32ビット、クアッドコアQ8400 CPUを使用しています。私はsql2008の管理オブジェクトをインストールしようとしましたが、それは私に、すでにインストールされている新しいバージョンを教えてくれます。 –

+0

https://social.technet.microsoft.com/wiki/contents/articles/35832.sql-server-troubleshooting-could-not-load-file-or-assembly-microsoft-sqlserver-batchparser.aspxを参照してください。 ダウンロード彼らが推奨する2つのパッケージ、x64の場合、最初にclrタイプをインストールしてからSharedManagementObjectsをインストールします。 – Savage

0

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

+0

私は反対の問題がありました。私のアプリのビルドプロパティで「32ビット優先」をチェックしましたが、64ビットSMOをインストールしました。 – mhenry1384

3

*注:この回答は、C#プログラムからMS SQL SMO(管理オブジェクト)を使用している人を対象としています。 質問に記載されているエラーで苦労しました。

ファイルまたはアセンブリをロードできませんでした「Microsoft.SqlServer.BatchParser.dll」 またはその依存関係の1つ:私が得た正確なエラーは、このでした。ダイナミックリンクライブラリ(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> 

PS:ヒントは、MSDNフォーラムでthis discussion threadにありました。