Modificare gli Item template di Visual Studio 2010

Quando creiamo un nuovo item in Visual Studio, ad esempio una classe,

image

otteniamo un file che contiene già alcuni elementi presi dal corrispondente template:

image

Con Visual Studio è sempre possibile creare dei template personali, da riutilizzare a piacere, con File–>Export Template… ma questa non è la soluzione migliore quando si desidera modificare item “standard” come Classe.cs, che godono di alcuni automatismi, come ad esempio SHIFT-ALT-C per la creazione al volo di una classe.

Volendo dunque modificare i template di Visual Studio, occorre procedere nel seguente modo:

  1. Identificare la cartella contenente il template da modificare
  2. Modificare il template
  3. Ricostruire la cache dei template

Identificare la cartella contenente il template da modificare

Visual Studio mantiene tutti gli item template (esclusi quelli da noi eventualmente creati ex novo con l’Export Template, che invece stanno nella nostra cartella documenti) in:

  • C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates (per i sistemi a 64 bit)
  • C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates (per i sistemi a 32 bit)

All’interno di questa cartella principale, i vari template sono organizzati in una struttura di sottocartelle che si riflette (secondo le informazioni contenute nel corrispondente file XML di cui parleremo tra poco) nella finestra di creazione di un nuovo item in Visual Studio:

image

Ogni template è contenuto nella corrispondente cartella di localizzazione (che per la localizzazione anglo americana en-US è la “1033”) ed è composto da vari file, contenuti in un archivio zip. Ad ogni template è associato un file XML di tipo .vstemplate che definisce ne definisce proprietà e comportamento.

Ad esempio, il template “ItemTemplates\CSharp\Code\1033\Class.zip” è formato dai file “Class.cs” e “Class.vstemplate”:

image

image

Purtroppo non è sempre semplice identificare qual’è il template da modificare, perché vi possono essere più template per uno stesso item. Sarà Visual studio a proporci di volta in volta quello corrispondente al contesto in cui ci troviamo, utilizzando le informazioni contenute nel file XML che descrive il template.

Per fare un esempio, prendiamo il template “SilverlightClass.zip” e confrontiamolo col precedente template (“Class.zip”)

image

image

Possiamo notare che il file XML ha le propietà <Name>, <Description> e <Icon> con gli stessi valori del precedente template e quindi anch’esso rappresenta “Class.cs”.

Al contempo, però, definisce due elementi in più:

  • <ShowByDefault> (con valore pari a “false”)
  • <TemplateGroupID> (con valore pari a “Silverlight”)

La prima proprietà fa si che non vi siano due elementi Class.cs nell’elenco degli item presenti nella finestra Visual Studio “Add New Item” e la seconda proprietà dichiara che nel caso in cui il progetto nel quale stiamo creando il nuovo item è di tipo Silverlight, allora quest’ultimo template dev’essere usato nella costruzione di Class.cs al posto di quello precedente, più generico perché privo dell’elemento <TemplateGroupID>.

La conoscenza di questi meccanismi è necessaria per identificare quale specifico template dobbiamo modificare per ottenere ciò che desideriamo.

Modificare il template

Tornando al nostro esempio, ipotizziamo di voler aggiungere il riferimento a System.Linq anche nelle classi costruite in progetti Silverlight.

In generale, si dovrà:

  1. Fare una copia di backup dell’archivio da modificare (non si sa mai…)
  2. Copiare e scompattare il file “ItemTemplates\CSharp\Code\1033\SilverlightClass.zip” in una cartella di lavoro
  3. Aprire la cartella di lavoro e modificare il file SilverlightClassClass.cs come segue:

image

  1. Selezionare tutti i file contenuti nella cartella di lavoro e col testo destro esegire “Invia a | Cartella compressa”.
  2. Sostituire l’archivio zip originale con l’archivio testé creato (che deve ovviamente avere lo stesso nome dell’archivio originale).

Ricostruire la cache dei template

Dopo aver chiuso ogni istanza di Visual Studio, occorre:

  1. Aprire il Visual Studio Command prompt come Amministratore (Start | All Programs | Microsoft Visual Studio | Visual Studio Tools | Visual Studio Command Prompt)
  2. Eseguire “devenv /installvstemplates”.
  3. A questo punto non resta che provare a creare il nuovo item e verificare che tutto funzioni.

posted @ martedì 23 novembre 2010 16:35

Print

Comments on this entry:

# re: Modificare gli Item template di Visual Studio 2010

Left by raffaeu at 23/11/2010 18:45
Gravatar
Io sto usando feature builder per VS 2010 per cose un pochino piu' complesse. Il gioco sembra semplice fino a che il tuo project template non diventa un project template che ha child project al suo interno. :-)
Comunque se dai uno sguardo ad InTheBox di Karl Shifflett fa un sacco di cose cool con i templates. Io ho preso spunto da li.

# re: Modificare gli Item template di Visual Studio 2010

Left by Abx at 24/11/2010 15:42
Gravatar
Bello bello!
Comments have been closed on this topic.
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011