Invalid cast oggetto com

martedì 29 aprile 2008 - 01.09

ats Profilo | Newbie

Ciao a tutti,
utilizzando il codice che riporto sotto, si verifica l'errore:
"Impossibile eseguire il cast di oggetti COM di tipo 'Microsoft.Office.Interop.Excel.ApplicationClass' in tipi di interfaccia 'Microsoft.Office.Interop.Excel._Application'. L'operazione non è stata completata perché la chiamata QueryInterface sul componente COM per l'interfaccia con IID '{000208D5-0000-0000-C000-000000000046}' non è riuscita a causa del seguente errore: Impossibile trovare . (Eccezione da HRESULT: 0x80030002 (STG_E_FILENOTFOUND))."

Il codice utilizzato è il seguente e l'errore si manifesta quando viene eseguita l'utlima riga:
Dim excelApp As Microsoft.Office.Interop.Excel.Application
Dim FileExcel As Microsoft.Office.Interop.Excel.Workbook
Dim FoglioExcel As Microsoft.Office.Interop.Excel.Worksheet
Dim RangeExcel As Microsoft.Office.Interop.Excel.Range

excelApp = New Microsoft.Office.Interop.Excel.Application
FileExcel = excelApp.Workbooks.Open("C:\VBNet\BSImpSE\BSImpSE\bin\Debug\2.xls")

Il problema non si verifica se scrivo lo stesso codice su un pc con WinXP e Visualstudio2005 e Office2003 con ìlei PIA per Office2003.
Se il codice lo scrivo su un pc con WinVista e VisualStudio2005 e Office2003 il problema si presenta.
Ho reinstallato Office2003 e le PIA per Office2003. Quando aggiungo il riferimento il file viene correttamente visto in c:\Windows\Assemby\GAC\ e nello specifico siccome devo utilizzare Excel il file è Microsoft.Office.Interop.Excel. Ho provato anche a registrarlo nuovamente col comango regasm, ma niente da fare, in questo caso ottengo l'errore: "RegAsm : error RA0000 : Impossibile caricare il file o l'assembly 'file:///C:\Windows\assembly\GAC\microsoft.office.interop.excel' o una delle relative dipendenze. Accesso negato."

Sepete dirmi come posso risolvere il problema?
Grazie a tutti in anticipo.
Gianni

Lanello Profilo | Senior Member

sul vista c'è una funzione per il controllo dell'account utente per evitare che malware o cavalli di troia installino componenti nel sistema che tu non desideri.

se tu vai nel pannello di controllo, su account utente, se sei l'amministratore del computer, puoi disattivare il controllo dell'account utente, in modo da eseguire i tuoi programmi per default come amministratore della macchina ed avere sempre la possibilità di accedere al registro ed alle impostazioni di sistema.

prova a disattivarlo, riavviare, e riprovare la registrazione del GAC.

facci sapere.

-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.

ats Profilo | Newbie

Ciao,
confermo che sono amministratore del computer ed ho disattivato controllo dell'account utente. Ho riavviato e registato nuovamente il componente, ma l'errore in fase di registrazione non cambia e tantomeno quello in fase di esecuzione delle righe di codice.
Mica sono costretto a reinstallare tutto? Il comando utilizzato per registrare è il seguente (eseguito da C:\Windows\assemby\GAC): regasm Microsoft.Office.Interop.Excel

Grazie comunque per l'aiuto, se avete altre soluzioni vi prego fatemi sapere.

Ciao
Gianni

ats Profilo | Newbie

Ciao a tutti,
ho risolto installando il SP3 di MSOffice 2003; infatti installando VisualStudio, se si ha MSOffice non servicepaccato al termine dell'installazione si ha il messaggio di aggiornare l'SP di Office prima di creare qualsiasi progetto.

Ciao
Gianni

Lanello Profilo | Senior Member

Grazie per aver postato la soluzione

-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5