Luca Regnicoli

RemoveCustomization

Una funzionalità che hanno aggiunto nell'ultima versione di Microsoft Visual Studio 2005 Tools  for Microsoft Office System 2003 (non credo che esista nella storia nome di prodotto più  lungo :-) è la possibilità di rimuovere tutte le caratteristiche di customizzazione relative a VSTO in modo semplice. Qual'è l'obiettivo? Semplice, pensate a un documento per la creazione di un'offerta commerciale, oggi possiamo arricchirlo con dozzine di controlli (presenti sul doc o nell'action pane), scrivere del bel codice .NET per semplificare la compiliazione dell'offerta stessa, ma al termine del lavoro vogliamo inviare al cliente SOLO il documento e NON il codice (l'assembly e le altre caratteristiche di customizzazione), ecco il motivo del metodo RemoveCustomization. 

Nelle versioni successive non era così immediato scollegare un documento dal suo expansion pack, schema o custom property, niente di impossibile ma certamente non intuitivo.  

Il metodo RemoveCustomization di Microsoft.Office.Tools.Excel.Workbook o Microsoft.Office.Tools.Word.Document ha il compito di togliere tutte le custom property di vsto e cestinare l'ActiveX control  presente sul documento; nella RTM dovrebbe togliere anche l'ActionPane. Non rimuove però i managed control presenti sul documento, quello sarà compito nostro.

Un esempio (ThisDocument.cs):

private void CreaCopiaPerIlCliente()

{

    this.SaveAs(...);  

    this.RemoveCustomization();

}