Come posso modificare i modelli di Visual Studio per la nuova classe / interfaccia C #?


209

Mi ritrovo a rimuovere le seguenti dichiarazioni di importazione in quasi tutti i file C # che creo in Visual Studio:

using System.Collections.Generic;
using System.Linq;
using System.Text;

Ovviamente è davvero facile farlo con Resharper, ma non avrei dovuto farlo.

Devono esserci alcuni template (classe, interfaccia) da qualche parte nella directory VS, da cui posso rimuovere le linee offensive. Dove trovo questi file? Esiste un modo migliore per controllare l'elenco di importazione predefinito?

Risposte:


369

Estrai, modifica e ricomprimi. I percorsi sono per il modello di classe, ma i modelli di interfaccia si trovano nella stessa cartella.

È possibile che si desideri modificare il file modello VS in ciascuno per rimuovere il fatto che non aggiungano automaticamente riferimenti agli assembly System, System.Data e / o System.Xml.

2005:

C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\CSharp\1033\Class.zip

2008:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class.zip

2010:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class.zip

A partire da Visual Studio 2012, i modelli non sono compressi, quindi è possibile modificare direttamente ogni .csmodello in ciascuna cartella applicabile.

2012:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

2013:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

2015:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

2017

VS 2017 cambia la posizione della directory e ora dipende dalla tua edizione (Professional / Enterprise / etc). Quindi per l'edizione Enterprise:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

2019

La posizione di VS 2019 è simile al 2017. Quindi per l'edizione Enterprise:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

Appunti

Edizioni Express

In Express Editions dovrai cercare nella sottodirectory WDExpressall'interno della IDEcartella, quindi ad esempio VS 2015 Express:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\WDExpress\ItemTemplates\CSharp\Code\1033\Class\Class.cs

Altre lingue

Se non usi la versione inglese di Visual Studio, la cartella 1033potrebbe non esistere, ma un numero diverso rappresenta la tua lingua. Ad esempio è 1031in un'installazione tedesca.


42
Non riflette sempre queste modifiche in Visual Studio. In caso contrario, modifica i file nella ItemTemplatesCachedirectory (oltre a ItemTemplates). Ad esempio (nel 2005) C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\1033\Class.zip\Class.cs. Nota che Class.zipqui c'è una directory, non un vero file ZIP.
Joe,

5
Tenere presente che gli aggiornamenti del service pack cancelleranno la cache, quindi assicurarsi di eseguirne il backup in modo da poterlo ripristinare.
Sweetfa,

3
@Joe: O forza Visual Studio per ricaricare i template eseguendo devenv / setup. Potrebbe essere necessario un minuto per l'esecuzione di quel comando.
Brian,

4
@Brian devenv.exe / installvstemplates è sufficiente. Almeno per VS 2012. È eseguibile mentre VS è in esecuzione.
Lucas,

6
Se si utilizza ASP.NET/MVC e Visual Studio non rileva gli aggiornamenti del modello, provare a modificarlo, C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\WebClass\Class.cs.quindi eseguire devenv.exe / installvstemplates.
J. Andrew Laughlin,

9

Stai cercando la seguente directory:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp

Ogni modello è un file ZIP all'interno della 1033sottocartella (inglese) di una delle categorie in questa cartella. È possibile modificare il .csfile all'interno del file ZIP.

Se utilizzi un sistema a 32 bit, rimuovi il file (x86). VS2005 è Microsoft Visual Studio 8e VS2010 lo è Microsoft Visual Studio 10.0.


Si noti che questi modelli non sono per utente. È possibile creare modelli per utente copiando i file ZIP in My Documents\Visual Studio 2008\Templates\ItemTemplates\Visual C#.


1
Grazie per l'opzione per utente qui. Nota, almeno con VS2015, non ci sono file / cartelle zip. I miei percorsi erano C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Classe poi ho creato e copiato ...\Documents\Visual Studio 2015\Templates\ItemTemplates\Visual C#\Code\1033\Class. Avevo chiuso Visual Studio mentre lo facevo. E ho anche eseguito il devenv.exe /installvstemplatescomando menzionato in un altro commento. Quando ho riavviato VS, le mie modifiche sono apparse durante la creazione di nuove classi. Eccellente!
sliderhouserules,

1

Per Visual Studio 2012, per rimuoverli dal file class.cs predefinito, il modello di elemento potrebbe apparire così (non includere / rimuovere usando le istruzioni):

File modello di classe predefinito: C: \ Programmi (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class \ Class.cs

using System;
namespace $rootnamespace$
{
    class $safeitemrootname$
    {
    }
}

Maggiori informazioni qui: http://aaron-hoffman.blogspot.com/2013/05/edit-default-visual-studio-2012-item.html


1

I nuovi modelli di classe potrebbero trovarsi in cartelle diverse a seconda del tipo di progetto. Mentre lavoravo in un progetto Web in VS 2015, ho scoperto che durante la modifica del file

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

Non sono riuscito a vedere alcuna differenza nel modello predefinito durante la creazione di una nuova classe. Fu solo dopo aver modificato il file

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\WebClass\Class.cs

che sono stato in grado di creare una nuova classe con il formato predefinito che volevo.


1

Nuova aggiunta alle informazioni eccellenti di Sam Harwell. Sto usando Visual Studio 2019 Community e il percorso del mio modello di classe è lo stesso di quello già menzionato, ad eccezione di "Enterprise", che è sostituito da "Community". Così:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

Vale anche la pena ricordare che la cartella "zip" di classe non è affatto una zip sulla mia installazione. È semplicemente un'altra cartella.

Un altro "gotcha" è che se si esegue un'edizione di anteprima, è nella propria cartella "Anteprima":

C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

Per altri modelli, la cartella da cercare è:

C: \ Programmi (x86) \ Microsoft Visual Studio \ [YEAR] \ [EDITION] \ Common7 \ IDE \ ItemTemplates

Quindi, sulla mia macchina è:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\ItemTemplates

[Modifica 10 maggio 2020]

È inoltre necessario controllare il valore di "Posizione dei modelli di elementi utente" in Strumenti | Opzioni | Progetto e soluzioni / posizioni


Spero che questo aiuti qualcuno.


0

Vecchia domanda - nuova risposta: scusate la, forse, domanda offensiva: perché dovreste preoccuparsene affatto.

Produttività Power Tools (estensione di Visual Studio, consiglierei comunque di usarla) -> abilita l'opzione / impostazione chiamata: "Rimuovi e ordina gli usi al salvataggio"

Nessun clic aggiuntivo / scorciatoie da tastiera / modifica manuale del modello ecc ... poiché è comunque necessario salvare i file.


0

Voglio solo aggiungere all'eccellente risposta di Sam Harwell. Potrebbe esserci più di un modello di classe, ad esempio AspNetCoreha un proprio modello in:

C: \ Programmi (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ ItemTemplates \ AspNetCore \ Code \ 1033 \ Class \ Class.cs

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.