2009-05-21 11 views
5

Avevo un programma C# che eseguiva un'automazione di Word & e utilizzava gli assembly di interoperabilità primari di Office 2003. Il modo in cui l'ho implementato è stato includere gli Interops nel cestino e il mio programma l'ha fatto riferimento da lì, anziché fare riferimento al GAC (non molto professionale, ma ha funzionato per anni). Recentemente su 3 macchine è stato installato il pacchetto di compatibilità office 2007 e ora il mio software tenta di richiamare Word o Excel. Viene visualizzato un errore:Gli assembly di interoperabilità primari di Office non funzionavano dopo l'installazione del pacchetto di compatibilità 2007

Impossibile eseguire il cast dell'oggetto COM di tipo Microsoft.Office.Interop.Word.ApplicationClass su tipo di interfaccia Microsoft.Office.Interop.Word.Application, questa operazione non è riuscita perché la chiamata QueryInterface sul componente COM per l'interfaccia con IID {00020970-0000-0000-C000-000000000046} non è riuscita a causa del seguente errore: Libreria non registrata . (Eccezione da HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))

Dopo alcune ricerche ho notato che l'installazione del pacchetto compatibili Word11 e Word12 erano entrambi installati nel GAC e lo stesso con Excel.

Ho tentato di fare in modo che il mio programma faccia riferimento all'interop di Word11 nel GAC e ancora nessun aiuto. Ho installato l'interoperabilità Word12 e ancora nessun aiuto. Sembra che l'installazione sia sembrata aver cambiato alcune impostazioni del registro o qualcosa che il mio software è confuso non riesce a trovare la libreria corretta.

Qualcuno ha qualche idea?

+0

domanda più recente [Errore durante l'accesso ai componenti COM] (http://stackoverflow.com/questions/12957595/error-accessing-com-components) – nawfal

risposta

1

Ho lavorato a questo problema copiando le versioni precedenti dal GAC alla cartella delle librerie di Terze parti e facendole riferimento lì - significa anche che è possibile creare rispetto al 2003 con solo 2007 installato. (E sì, so che questo è un hack veramente sporco)

+1

Non ha funzionato, anche se faccio riferimento al mio PIA locale continua a lanciare stesso errore –

3

Recentemente ho avuto questo problema con la parola di troppo e ho rintracciato questa chiave di Registro di sistema come il colpevole

HKEY_Classes_Root\TypeLib\{00020905-0000-c000-000000000046}\8.4 

A quanto pare questo dice la parola da usare word 2007 assembla assembly invece di Word 2003 (8.3). Almeno penso di non essere troppo familiare con le assemblee di lavoro in ufficio. Cancellare la chiave di registro e tutto ha funzionato normalmente. Non conosco alcun effetto negativo dall'eliminazione di questa chiave, ma sicuramente lo appoggia.

+0

Questa è la risposta giusta. Ho avuto questo stesso problema (tranne che con la parola 2010 vs 2007). Ho eliminato il riferimento non necessario e ha iniziato a funzionare. – richb01

+0

Spero che lo risolvano per versione finale, ma questo è anche il caso nei miei test del 2010 (8.5) vs 2013 beta (8.6). – HotN

Problemi correlati