.NET: se il mio .NET automatizza Office, il cliente deve avere Office installato?

StackOverflow https://stackoverflow.com/questions/403118

  •  03-07-2019
  •  | 
  •  

Domanda

Se creo un programma, che in una piccola area fuori mano, usa l'automazione di Excel:

l'applicazione fallirà quando è necessario Excel

o l'applicazione non si avvia?


Aggiornamento

Consentitemi di porre la stessa domanda, ma in modo più elaborato:

L'applicazione sarà utilizzabile da

  •   

    99,9% degli utenti che non usano mai la funzionalità che richiede Excel

  • 0% degli utenti, poiché Excel non è installato.

Fammi fare la stessa domanda in un altro modo:

Un'applicazione non riuscirà a inizializzare facendo riferimento alle DLL di interoperabilità COM?


Fammi fare la stessa domanda in un altro modo:

Impossibile avviare un'applicazione che non utilizza Excel, ma che fa riferimento alla DLL di interoperabilità COM?


Fammi fare la stessa domanda in un altro modo:

Un'applicazione che non utilizza Excel sarà utilizzabile se Excel non è installato, se quell'applicazione ha una dipendenza dalle dll di Interoperabilità primaria di Office?


Fammi fare la stessa domanda in un altro modo:

Se la mia applicazione non utilizza Excel, l'utente deve avere Excel installato?

È stato utile?

Soluzione

Il codice verrà eseguito correttamente fino a quando non tenta di effettuare una chiamata alle librerie di automazione, in quel momento genererà un'eccezione.

Altri suggerimenti

Ho un'app che utilizza l'automazione di Excel e posso affermare definitivamente che fallirà in fase di esecuzione, non al momento del caricamento. Infatti controlliamo se è installato e mostriamo solo " Mostra i dati in Excel " se lo troviamo (ma i PIA sono distribuiti su tutte le installazioni).

Se automatizzi Office ... devi avere Office!

Detto questo, la risposta cambia se si trasforma la domanda in: Posso creare un foglio di calcolo Excel senza avere Excel sul client?

Esistono molti controlli di terze parti per farlo; puoi scrivere direttamente alle specifiche XML di MS SpreadML ( http: //msdn.microsoft.com/en-us/library/aa140066(office.10).aspx ; oppure utilizzare librerie di terze parti che lo fanno (come http://www.carlosag.net/Tools/ExcelXmlWriter/ ).

Penso che fallirà in fase di esecuzione, perché gli assembly di interoperabilità dovrebbero essere in grado di caricare senza i componenti COM disponibili sul sistema client.

AGGIORNAMENTO: Runtime dovrebbe significare quando ne hai bisogno!

Utilizzando COM in Win32, fallirà quando necessario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top