2010-09-13 10 views
6

Ciao Ho combattuto alcune difficoltà con la comprensione della distribuzione di Primary Interop Assemblies (PIA) per MS Office. Ho add-in di Visual Studio Com costruito in VS 2008 su tecnologia com pura (non VSTO vedere più in basso di questo per ulteriori informazioni su quello), che fa riferimento a 2003 Primary Interop Assemblies ma il componente aggiuntivo può essere utilizzato su 2003, 2007 o ora 2010 Macchine da ufficio Poiché non so mai se il cliente utilizzerà il 2003, il 2007 o il 2010, non posso semplicemente implementare una versione PIA come prerequisito (a meno che non crei 3 programmi di installazione che non desidero). Ora, la mia comprensione è che quando si seguono i passaggi here per aggiungere PIA 2003 e 2007 agli elenchi di prerequisiti visualizzati in un pacchetto di installazione di Visual Studio (2008), i prerequisiti sono abbastanza intelligenti da determinare quale versione dell'ufficio è in esecuzione sul client ti stai prendendo di mira. Quindi se dovessi selezionare gli assembly di interoperabilità primari 2003 e gli assembly iterop primari del 2007 come entrambi prerequisiti allora quando si installa su una macchina che ha 2003 dovrebbe essere abbastanza intelligente da provare solo ad aggiungere PIA 2003 se questi mancano su questa macchina e se si tratta di una macchina Office 2007, installerà solo PIA 2007 (e non tenterà di installare PIA 2003).Distribuzione di PIA in versioni miste di Office

Domanda 1 questa è una corretta comprensione (che i pacchetti prerequisiti sono questo intelligente per installare solo ciò di cui ha bisogno in base alla versione di Office?)

Domanda 2 c'è un modo per ottenere il PIA 2010 da mostrare nella lista dei prerequisiti in VS 2008 come fanno 2003 e 2007? Non voglio aggiornare questo progetto a VS 2010 b/c è considerato un'app legacy ora con molti clienti da tutto il mondo che lo utilizzano.

Domanda 3 Anche se l'assembly corrente fa riferimento a interpzioni primarie del 2003, attualmente non distribuisco tali interponi con il componente aggiuntivo nel percorso di installazione. Invece, suppongo che se riesco a ottenere il PIA corretto, non ho bisogno di questo presente nel percorso di installazione, dal momento che il PIA sarebbe nel GAC. Tuttavia, un possibile approccio potrebbe essere quello di includere solo gli assembly 2003 a cui si fa riferimento (nel mio caso excel e word) nel percorso di installazione e non preoccuparsi del PIA. Sospetto che ciò funzionerebbe su macchine 2003 ma forse non sulle macchine 2007 e 2010 b/c su quest'ultima, anche se gli intervalli 2003 a cui si fa riferimento vengono trovati in fase di esecuzione nel percorso di installazione dell'assembly, penso che se non ci sia un criterio.11.0.Microsoft.Office.Interop.Excel/Word (ecc.) nel GAC, quindi il 2007 e il 2010 probabilmente non sapranno cosa fare con gli interpini 11.0 (2003) (come penso la Policy.11.0.Microsoft. Office.Interop file reindirizza le richieste per gli intervalli 2003 al 2007 o 2010). Qualche idea su questo?

Domanda 4: Esiste un bug ben noto con le app Framework 2.0 Componenti aggiuntivi di Office e Office 2003 in cui il componente aggiuntivo non verrà caricato. Questo è stato affrontato da KB907417 alias KB908002. Spera che qualcuno sappia se questo KB è necessario se sviluppi sul framework 3.0 o 3.5 (e rendi 3.0 o 3.5 un prerequisito) poiché questo problema era specifico del framework 2.0? Oppure il KB deve ancora essere implementato b/c è office 2003 che è il problema e non la versione del framework?

Come si può vedere dalle mie 3 domande, quello che sto cercando di accertare è se possiamo creare un singolo programma di installazione tramite l'utilità di configurazione VS. Se il PIA può essere fatto con un installer ma il KB sopra è l'ostacolo (come forse la risposta tornerà che anche sul 3.0 o 3.5 framework 2003 i clienti avranno bisogno del KB) allora forse il percorso di un installatore è solo quello di fare il KB è un prerequisito su tutta la linea e lo installa sulle macchine 2007 o 2010, anche se tecnicamente non ne hanno bisogno. Anche qualsiasi idea su questa opzione sarebbe apprezzata. Infine, sono a conoscenza del fatto che la scrittura di un componente aggiuntivo COM gestito per excel o word è ora generalmente eseguita con VSTO anziché con puro framework framework gestito, ma questa non è un'opzione attualmente in grado di modificare l'app legacy in questa direzione. Inoltre è stato riferito che il 4.0 framework ora può essere utilizzato per distribuire componenti aggiuntivi senza rendere necessario alcun PIA come prerequisito, ma ancora una volta, questa non è un'opzione valida in questo momento.

risposta

0

Il codice utilizza metodi o classi di Office 2007+? In caso contrario, sei sicuro di non poter utilizzare le PIA del 2003 in tutti i casi? Le app successive dovrebbero essere compatibili con le versioni precedenti (supportando la stessa API), quindi l'unica ragione per cui è necessario un PIA aggiornato è se è necessario accedere ad alcune funzionalità aggiunte entro il 2007 o versioni successive, penso.

Si consiglia di dare un'occhiata a Add-in Express, che promette un programma di installazione one-for-all-versioni, ed è piuttosto facile da usare.

0

Come si può dire per i miei 3 domande quello che sto cercando di accertare è se siamo in grado di costruire un unico programma di installazione tramite l'utility di configurazione VS

Non è possibile. È necessario creare un pacchetto di installazione personalizzato (installazione bootstrapper).

Molti anni fa ho utilizzato dotNetInstaller con HTML GUI builder, oggi WiX toolset sarebbe la soluzione migliore, penso.

Verificare come sono stati creati gli installatori .msi PIA con gli strumenti Orca o .msi e .exe per controllare i registri di installazione di Windows.

Sulla base di verifiche di registro, controlli di file, controlli di prodotti installati, versioni di Windows, versioni di office è possibile creare le condizioni se il componente deve essere installato o meno.

Oh e mi raccomando di fare installatori di plug-in senza prerequisiti e installarli in modo condizionale con il programma di installazione personalizzato bootstrapper.

Problemi correlati