questo non risponde alla tua domanda specifica , ma lo affronta da una direzione alternativa ...
Fa davvero È necessario installare MS Excel oppure è necessario che il computer sia in grado di visualizzare file Excel? Ad esempio, se l'utente ha installato LibreOffice o un'altra applicazione compatibile con file Excel simile, sarebbe accettabile?
Abbiamo un'applicazione che apre file Excel e file PDF per l'utente. Non ci interessa davvero quale software hanno gli utenti sul loro computer per visualizzare questi file. Non è davvero la nostra preoccupazione. Abbiamo semplicemente Process.Start(...)
il file e lasciamo che il SO lo prenda da lì.
La chiamata viene chiusa in un blocco Try/Catch
e offre all'utente i suggerimenti se questa chiamata genera un errore; suggerimenti, come che potrebbero non avere Office (Excel) installato, o mancano un visualizzatore di PDF. Fondamentalmente, invece di provare proattivamente per identificare se il computer dell'utente è in uno stato abbastanza completo per eseguire l'azione, assumiamo che lo sia, ma poi gestiamo la situazione quando non è stata scoperta.
È molto più semplice controllare il registro. Leggi http://stackoverflow.com/questions/244517/where-is-a-reliable-registry-key-to-find-install-location-of-excel-2007 – Zenwalker
Puoi dirci un po 'di più su " crash?" Forse includi del codice rilevante nell'area che si blocca in modo da poter avere un'idea del tuo utilizzo/necessità? – ckittel
bene il crash è excpeted, dal momento che non è installato excel, l'errore è questo: "Recupero del COM factory con CLSID {00024500-0000-C000-0000000000046} non riuscito a causa del seguente errore: 80040154 Classe non registrata (Eccezione da HRESULT : 0x80040154 (REGDB_E_CLASSNOTREG)). "Un try catch fa un ottimo lavoro in questo caso come hai menzionato sotto [ho appena provato], tuttavia volevo solo rendere il codice un po 'più" mirato "e cercare solo l'esistenza di Excel .la necessità qui è di avvisare l'utente che nella fase corrente il progetto ha bisogno di ms excel e non provare ad aprire form1 quindi questo msg è evitato – Karapapas