2012-09-24 18 views
7

So che questa domanda è stata richiesta molte volte e ho trovato molte informazioni su google riguardo a questo problema, ma non riesco ancora a risolvere il problema che esiste sul mio DEV PC :(
I have that ugly error message on every page (Impossibile caricare il file o l'assembly Microsoft.SqlServer.BatchParser). Ho installato Microsoft SQL Server 2005 Management Objects Collection come consigliato in molte risorse Internet, ma non è stato utile. Poi ho provato a installare Microsoft SQL Server 2008 Management Objects, ma dice che non può essere installato , poiché la versione più recente esiste già (ho installato SQL Server 2008)
Quindi sono passato a GAC ​​e ho trovato le seguenti righe:
Microsoft.SqlServer.BatchParser, Versione = 10.0.0.0, Culture = neutro, PublicKeyTok en = 89845dcd8080cc91, processorArchitecture = AMD64Impossibile caricare Microsoft.SqlServer.BatchParser o una delle sue dipendenze

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 = 86

microsoft.sqlserver.batchparser, Version = 9.0.242.0, culture = neutral, PublicKeyToken = 89845dcd8080cc91, processorArchitecture = 86

Microsoft.SqlServer.BatchParserClient, Versio n = 10.0.0.0, Culture = neutro, PublicKeyToken = 89845dcd8080cc91, processorArchitecture = MSIL < - La versione 9.0.242.0 dovrebbe esistere?

Ho già trascorso circa mezza giornata per trovare una soluzione senza successo, ed è molto spiacevole lavorare con VS quando intellisense non funziona a causa di quell'errore.

ho VS 2010 SQL Express 2005 e SQL Server 2008 installato (vedi configurazione screen shot) enter image description here

Si prega di aiutarmi a risolvere questo! Grazie.

risposta

2

è necessario ottenere questo errore durante l'esecuzione dell'applicazione tramite Visual Studio. Ho avuto questo errore in passato, ma è stato risolto dopo qualche soluzione come

1) rimuovere il riferimento indesiderato di BatchParser (se esiste in web.config).
2) alcune dll di terze parti che potrebbero causare l'errore dell'applicazione.
3) Potresti aver copiato la tua pagina aspx da un'altra pagina e aver dimenticato di cambiare la sezione "inherts".

+0

1) Non ho trovato alcun riferimento a BatchParser in soluzione. 2) Penso di no, ma è possibile verificare con certezza? 3) È una vecchia soluzione che contiene progetti DB e in alcuni punti inizia a comparire l'errore. –

+0

Puoi inserire un debugger e mostrarci in quale riga hai ricevuto l'errore? –

+0

Quando si allega al processo, non si verificano errori sul sito. Solo in fase di progettazione, quando si modifica il markup ASPX, nella riga direttiva @Page lo mostra sottolineato (come errore). Quando passo il mouse su di esso, mostra l'errore BatchParser. Nessun errore di compilazione o errore di runtime esiste. –

3

Si vede questo errore in Management Studio o Visual Studio? Quando ricevi questo messaggio di errore? Il problema potrebbe essere causato dall'interazione a 32 bit contro 64 bit come documentato in

956178 Messaggio di errore quando si esegue una versione a 32 bit di SQL Server 2008 su una versione di Windows basata su Itanium: "Il sistema non può trova il file specificato " http://support.microsoft.com/kb/956178/EN-US

Se si utilizza un sistema a 64 bit, assicurarsi di aver installato la versione a 64 bit degli oggetti di gestione aggiornati.

+0

L'errore che appare in Visual Studio, quando apro la pagina ASPX per la modifica. Nella parte superiore del file, vedo quel messaggio di errore e quindi l'intelisence non funziona. Sto usando Windows 7 a 64 bit, SQL2008 a 32 bit, VS2010 a 32 bit, con CPU Quad Core Q8400. Ho provato a installare oggetti di gestione per sql2008, ma mi dice che la versione più recente è già installata. –

+0

Vedere https://social.technet.microsoft.com/wiki/contents/articles/35832.sql-server-troubleshooting-could-not-load-file-or-assembly-microsoft-sqlserver-batchparser.aspx Scarica i due pacchetti che raccomandano, per x64, installano prima i tipi clr, quindi SharedManagementObjects. – Savage

0

Ho dovuto entrare nelle impostazioni avanzate del mio pool di applicazioni e impostare "abilita applicazioni a 32 bit" su TRUE (stavo eseguendo SQL Server a 64 bit).

+0

Ho avuto il problema opposto. Avevo selezionato "Prefer 32-bit" nelle proprietà di build della mia app, ma avevo installato SMO a 64 bit. – mhenry1384

3

* NOTA: questa risposta è per le persone che utilizzano MS SQL SMO (oggetti di gestione) da un programma C#. Ero alle prese con l'errore menzionato nella domanda. L'errore esatto ho ottenuto è stato questo:

Impossibile caricare il file o l'assembly 'Microsoft.SqlServer.BatchParser.dll' o una delle sue dipendenze. Una routine di inizializzazione della libreria di collegamento dinamico (DLL) non è riuscita. (Eccezione da HRESULT: 0x8007045A)

Si è verificato un problema con l'esecuzione di assembly .NET 2.0 all'interno di .NET 4.0 (o versioni successive) CLR. I complessi di server SMO SQL vengono costruite contro v2.0.50727 del runtime e quindi la sezione seguente è richiesta nel app.config (o web.config)

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 

PS: Il suggerimento era in this discussion thread sulle tribune MSDN.

Problemi correlati