Cosa significa PIA ?PIA non è altro che l'acronimo di
Primary Interop Assemblies e sono semplicemente degli Assemblies .NET.
Sono in pratica una sorta di wrappers che permettono ad una applicazione managed (gestita) .NET di dialogare ed utilizzare del codice unmanaged (non gestito) dei componenti COM di Microsoft Office XP.
In parole povere con questi Assemblies, possiamo comandare e usare tutte le applicazioni del pacchetto Office XP.
Dove trovo questo pacchetto e come si installa ?Cominciamo a scaricare il pacchetto da questo indirizzo:
http://download.microsoft.com/download/c/4/8/c4813cc0-a4d4-4bb4-b486-9cbd56f38235/oxppia.exe ">Download Office XP PIAs
Una volta scaricato il pacchetto vi chiederà dove scompattare i file, scegliete una cartella di vostro piacimento. Alla fine del processo di decompressione vedrete una lista di file composta principalmente da DLL (i nostri Assemblies) corrispondenti ad ogni prodotto di Office XP:
- Microsoft.Office.Interop.Word.dll
- Microsoft.Office.Interop.Excel.dll
- Microsoft.Office.Interop.Access.dll
- Microsoft.Office.Interop.Outlook.dll
- e così via...
L'elenco dei PIAs di OfficeXP
Ora è possibile procedere all'installazione di questi Assemblies che verranno inseriti nella
GAC (Global Assembly Cache) di .NET tramite l'utilità
gacutil.exe offerta dal Framework ma non preoccupatevi perchè l'operazione sarà molto facile grazie ad uno script batch.
E'necessario quindi aprire un Prompt dei comandi di Visual Studio .NET in modo che siano caricate automaticamente le variabili di Path. Spostatevi nella cartella inc ui sono stati decompressi gli Assemblies (es. C:\pia) ed è sufficiente digitare:
register e premere invio. (register.bat è lo script batch, potete guardare all'interno le operazioni che vengono eseguite).
A questo punto l'ambiente è pronto ed è possibile referenziare i nostri assemblies all'interno di un progetto creato con Visual Studio .NET.
Referenziare gli Assemblies dentro .NETPotete avviare l'ambiente e creare un nuovo progetto con il linguaggio che preferite.
Una volta dentro potete procedere andando nel "Solution Explorer" e con il tasto destro sulla cartella "References" scegliere "Add Reference".
C'è un piccolo particolare adesso da segnalare. Chiunque abbia costruito precedentemente un assembly dopo averlo inserito nella GAC andava come minimo a cercarlo dalla linguetta ".NET".
In questo caso invece scegliamo la linguetta "COM" e cerchiamo la Type Library di Office XP (10) di cui abbiamo bisogno, per esempio "Microsoft Excel 10.0 Object Library".
A questo punto Visual Studio .NET automaticamente controlla nella cache se è disponibile un Assembly a cui fare riferimento. In caso affermativo quindi lo referenzia. In caso negativo si crea nella directory progetto un Assembley per l'interoperabilità dedicato.
Vediamo le differenze:
Gli Assemblies PIA sono disponibili infatti punta alla GAC
Gli Assemblies PIA non ci sono e VS.NET si è creato Assembly per l'interoperabilità
Ora come al solito possiamo richiamare i namespace all'interno del nostro progetto semplicemente usando in C#:
using Microsoft.Office.Interop.Excel;
oppure:
Imports Microsoft.Office.Interop.Excel;
Ulteriori informazioni relative a questo pacchetto le potete trovare nel file
readme.htm presente nella stessa cartella in cui avete decompresso gli Assemblies. Qui ci sono anche istruzioni su come disinstallare i PIA oppure come distribuire le proprie applicazioni includendoli nel pacchetto di installazione.