Il collega Osvaldo mi ha segnalato oggi che una nostra applicazione che si interfaccia con Excel tramite VBA generava il seguente errore:
System.Runtime.InteropServices.COMException (0x80028018): Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
Indagando sulla cosa abbiamo visto che l’errore si verifica quando sulla macchina in cui gira l'applicazione c’è office in una lingua (es English) e le regional settings in un’altra (es. italiano).
Per risolvere il problema è sufficiente cambiare le regional settings e metterle nella lingua di excel.
Se questa soluzione non ci piace possiamo intervenire sul codice.
Se la nostra applicazione l'abbiamo già venduta e non vogliamo rilasciare la patch possiamo optare pe la terza soluzione: si può installare il Multilingual User Interface Pack per la versione speficica di office.
L’articolo che descrive e risolve il problema è il seguente:
http://support.microsoft.com/default.aspx?scid=kb;en-us;320369