Domanda

Ho dovuto importare un progetto precedente (in .NET 2) in Visual Studio 2013, utilizza gli assemblaggi interopera primari Microsoft.

Visual Studio ha detto che ho bisogno di aggiungere riferimenti al progetto.Ora sono andato e ho fatto qualche lettura e apparentemente Microsoft ha appena rilasciato la PIA per Office 2010?(Ho Office 2013)

Ora quello che vorrei sapere è.

    .
  1. Posso ottenerlo a lavorare con Office 2013 e essere compatibile con la schiena?
  2. E se è così è una buona strada per andare per il futuro?Sarà compatibile?Poiché vedo che hai bisogno di .Net 2 (al più tardi) e Windows 8 viene fornito con 4,5 e non 3 (per impostazione predefinita) e la maggior parte dei nuovi computer avrà Office 2012 o 2013.
È stato utile?

Soluzione

Pias è un artefatto storico, richiesto solo da vecchie versioni .NET (prima della V4). Sono stati accuratamente e elegantemente sostituiti dalla funzione "Incorpora interoperazioni interoperanti", noto anche come caratteristica "No PIA". Supportato da Visual Studio 2010, lo troverai nella finestra Proprietà quando si seleziona un assieme di riferimento. Impostazioni predefinite a True. Un buon video che copre la tecnologia sottostante è Disponibile qui .

Qual è il motivo per cui Microsoft non pubblica i Pias per Office 2013, si aspettano che tu incorpora invece i tipi di interoperazione.

La funzione è molto desiderabile, evita il tuo cliente a dover installare la pianta sulla sua macchina e per te includerli con il programma di installazione. Risolvendo il problema quando nessuno dei due si prende cura di esso, un incidente tropico troppo comune. Inoltre, i Pias per Office sono molto grandi, il grande vantaggio di incorporare i tipi di interoperazioni è che il tuo assemblaggio contiene solo i tipi che usi effettivamente. Molti megabyte ridotti a pochi kilobyte.

Il flusso di lavoro è un po 'diverso. Invece di aggiungere un riferimento ai gruppi Microsoft.Office.Interop come disponibili nella finestra di dialogo Aggiungi riferimento, .NET Framework, ora si utilizza la scheda COM. E Pick, per esempio, "Microsoft Excel 15.0 Object Library" per generare i tipi di interop per un programma che utilizza Excel. Se si carica un vecchio progetto che è stato utilizzato in precedenza Pias, quindi rimuovere tali gruppi di riferimento e aggiungerli indietro dalla scheda COM.

Si noti che una funzione è persa, mirata intenzionalmente una vecchia versione dell'Ufficio che non hai effettivamente installato sulla tua macchina Dev è più difficile. Se questo è un requisito, allora hai ancora bisogno dei Pias per quella versione, forzare i tipi di interoperazioni incorporati a true nella finestra Proprietà. In realtà farlo è discutibile, Microsoft ha difficoltà a mantenere nuove versioni da ufficio completamente compatibili con vecchie versioni. L'hanno tenuto per 15 anni, ma è stato esaurito dal vapore. Uno scenario peggiore dei casi rivolto a una versione più recente di quanto non sia stato installato sulla macchina, è responsabile di effettuare il blocco del programma con molto difficile per diagnosticare eccezioni come AccessViolationException.

Si noti che è necessario apportare piccole modifiche al tuo codice per consentirle di funzionare. Le classi sintetiche "XxxxClass" non sono incorporate, solo le interfacce "Xxxx". Basta rimuovere la parola "Class" dall'istruzione nuova .

Altri suggerimenti

VS 2015 Community with Office 365 - per qualsiasi motivo, l'add dall'oggetto COM non funziona.La soluzione è andare nel GAC e trova i gruppi interoperati, copiarli in una directory temp, quindi aggiungi al progetto come qualsiasi DLL.

Inoltre, se non sai ora, Windows 8 ha versioni precedenti di .NET Framework, ma non sono installate per impostazione predefinita.Vai alle funzioni del programma ---> Aggiungi funzionalità a Windows ----> e la prima casella di controllo dovrebbe essere .net 3.0 e forse 2.0.Nota, se si è su un server WSUS è necessario dirlo a Windows per prendere i file dai server Windows Update.Spero che ti aiuti!

Ufficialmente non esiste una compatibilità all'indietro della PIA per ufficio.In realtà funziona.

Per motivi di compatibilità all'indietro Sto usando la PIA per Office XP da diversi anni e funziona bene con Office XP, 2003, 2007 e 2010 (non ancora testato con il 2013) e su Windows XP, Vista, 7 e 8.

Per la compatibilità con le diverse versioni di Windows, sto usando .NET Framework 3.5.

Per il futuro ... dipende da ciò che stai facendo con la PIA.Se possibile, è molto meglio affrontare direttamente i file XML aperti o creare un componente aggiuntivo per Word / Excel.

Ho appena scoperto che Visual Studio 2013 Express non ha più il supporto dell'ufficio.Quindi hai bisogno di almeno la versione Pro per farlo funzionare.

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