2009-03-31 8 views
64

Quando faccio clic con il pulsante destro del mouse sulla soluzione di un progetto C# Visual Studio e seleziona Aggiungi ...> Classe ... crea una classe senza un modificatore pubblico. Come posso ottenere Visual Studio (2008) per impostare la classe come predefinita su una classe pubblica?Come si imposta una nuova classe come predefinita quando viene creata in Visual Studio?

+0

è necessario modificare il modello di classe, [come descritto qui] (http://web.archive.org/web/20090403082555/http://dotnet.org.za/hiltong/archive/2008/ 26/02/che modifica-the-new-class-visual-studio-c-template.aspx). È leggermente più complicato rispetto alla semplice modifica di un singolo file (che è ciò che ci si potrebbe aspettare), ma non sembra troppo male. –

risposta

52

È necessario modificare il file che si trova in C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033.

Visual Studio 2010 (10.0) e sotto: C'è un file zip chiamato Class.zip. Scompattalo, modifica il file da inserire nella tua parola chiave public quindi reimballala (assicurati di eseguire il backup dell'originale).

Dopo questo, assicurarsi VS ricostruisce è cache (che è solo il file zip decompressi nelle directory in C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache) aprendo una shell dei comandi di Visual Studio ed eseguire il seguente comando:

devenv /installvstemplates 

Visual Studio 2012 (11.0) e versioni successive: Vedere the answer by @JochemKempe, poiché è molto più semplice cambiarlo ora, semplicemente modificando un singolo file (senza decompressione o ripping).

AGGIORNAMENTO: Non dimenticare di aprire l'editor di testo preferito con privilegi di amministratore prima di eseguire qualsiasi modifica.

+0

Grazie mille. Su un computer Windows 7 a 64 bit con VS 2012 questo percorso si trova in C: \ Programmi (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp – dotnetguy

+0

e se si desidera modificare il modello di articolo tra un team su macchine diverse , qualche idea? – DevDave

+0

In VS2013, è necessario eseguire il Prompt dei comandi dello sviluppatore per VS2013 come amministratore ed eseguire il comando dopo aver chiuso Visual Studio: non verrà completato finché VS è aperto. –

73

In VS2012 è facile come andare a C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class e modifica del file Class.cs.

Non è necessario decomprimere o ricostruire la cache. Un cambiamento molto positivo se me lo chiedi.

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

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

VS2017 (Professionista): C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

+1

Questo non sembra funzionare per me. Ho anche sostituito il file Class.cs nella directory ItemTemplatesCache. Riavviato VS2012 ogni volta. C'è un modo per ricostruire il cache forse? – crush

+0

Non lo so. Mi dispiace. – JochemKempe

+7

Per VS2013 utilizzare questo percorso: C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class –

8

di creare una classe pubblica per impostazione predefinita per Visual Studio 2012:

Modifica questo file: C : \ Programmi (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class \ Class.cs

assomigliare a questo:

using System; 
using System.Collections.Generic; 
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq; 
$endif$using System.Text; 
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks; 
$endif$ 
namespace $rootnamespace$ 
{ 
    public class $safeitemrootname$ 
    { 
    } 
} 

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

1

Ecco una scriptlet PS rientrante che aggiornerà il C# classe base Item Template. Il percorso cambia a seconda della versione/edizione di Visual Studio che utilizzi. Inoltre esegue il backup del modello originale nel caso in cui si desideri tornare in futuro.

$csharpClassTemplates = @("C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs", 
          "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\1033\Class\Class.cs", 
          "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs") 

$csharpClassTemplates | % { 
    Write-Output("Updating template $_") 
    Copy-Item $_ -Destination "$_.backup" 
    (get-content $_).Replace('public ', '').Replace('class ', 'public class ') | Set-Content $_ 
} 
+0

Il mio percorso era '.. \ 2017 \ Professional \ ...' e l'ho modificato manualmente ma questo ha mostrato la nuova struttura di cartelle per il 2017. Grazie. –

Problemi correlati