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.