Visual Studio'da oluştururken yeni bir sınıfı genel olarak nasıl varsayılan hale getirirsiniz?


111

Bir C # Visual Studio projesinin Çözümüne sağ tıklayıp Ekle ...> Sınıf ... 'ı seçtiğimde genel değiştirici olmadan bir sınıf oluşturur. Visual Studio'nun (2008) sınıfı genel bir sınıfa varsayılan olarak ayarlamasını nasıl sağlayabilirim?


1
Sınıf şablonunu burada açıklandığı gibi değiştirmeniz gerekir . Bu, tek bir dosyayı düzenlemekten biraz daha karmaşıktır (beklediğiniz gibi), ancak kulağa çok da kötü gelmiyor.
Jon Skeet

Yanıtlar:


71

İçinde bulunan dosyayı değiştirmeniz gerekiyor C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033.

Visual Studio 2010 (10.0) ve altı: Burada Class.zip adında bir zip dosyası var. Bunu paketinden çıkarın, publicanahtar kelimenizi eklemek için dosyayı düzenleyin ve ardından yeniden paketleyin (orijinali yedeklediğinizden emin olun).

Bundan sonra, C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCachebir Visual Studio komut kabuğunu açarak VS'nin önbelleğini yeniden oluşturduğundan emin olun (bu, yalnızca zip dosyalarının dizinlere açılmış halidir ) ve aşağıdaki komutu yürütün:

devenv /installvstemplates

Visual Studio 2012 (11.0) ve üstü: @JochemKempe'nin cevabını görün , çünkü bunu şimdi yalnızca tek bir dosyayı düzenleyerek (sıkıştırmayı açma veya yeniden yükleme yok) değiştirmek çok daha kolay.

GÜNCELLEME: Herhangi bir düzenleme yapmadan önce tercih ettiğiniz metin düzenleyiciyi yönetici ayrıcalıklarıyla açmayı unutmayın.


Çok teşekkür ederim. VS 2012 ile 64 bit Windows 7 Makinesinde bu yol C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp
Sudhanshu Mishra

ya öğe şablonunu farklı makinelerdeki bir ekip arasında değiştirmek isterseniz, herhangi bir fikriniz var mı?
DevDave

VS2013'te, Yönetici olarak VS2013 için Geliştirici Komut İstemi'ni çalıştırmanız ve Visual Studio'yu kapattıktan sonra komutu çalıştırmanız gerekir; VS açıkken tamamlanmayacaktır.
Chris Moschini

1
Gönderi burada bulunan bilgileri içerecek şekilde düzenlendiğinden, @Guy'un referans verdiği blog gönderisini ziyaret etmenize gerek yok. Bu blog gönderisini ziyaret etmek istiyorsanız , şimdi yeni bir URL'ye taşındı: guyellisrocks.com/2009/03/…
ErikE

151

In VS2012 o gidiş kadar kolay C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Classve Class.cs dosyasını düzenleme.

Önbelleği açmaya veya yeniden oluşturmaya gerek yok. Bana sorarsan çok olumlu bir değişiklik.

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 (Profesyonel) :C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

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

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

demode

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


2
Bu benim için işe yaramıyor gibi görünüyor. ItemTemplatesCache dizinindeki Class.cs dosyasını bile değiştirdim. VS2012 her seferinde yeniden başlatıldı. Önbelleği yeniden oluşturmanın bir yolu var mı?
ezmek

7
VS2013 için şu konumu kullanın: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class
Zar Shardan

6
Gerçek sınıf şablonunu güncellemek için metin düzenleyicinizi Yönetici modunda açmanız gerekebilir.
david.barkhuizen

3
VS2015 için şu konumu kullanın: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class Ancak, Xamarin yüklüyse, ayrıca bir arama yapmanız gerekebilir. Windows "Class.cs" için sürücü. Sonunda tüm sonuçları herkese açık hale getirdim.
JochemKempe

2
Visual Studio 2019 çıktı, bu nedenle Önizleme sürümü belirtecek şekilde değişmelidir. Yalnızca Professional'ı yükledim, ancak diğer ikisi Community and Enterprise VS2019 Professional olacaktı:C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
Dave Thompson

10

Visual Studio 2012 için varsayılan olarak bir Public sınıf oluşturmak için:

Bu dosyayı düzenleyin:

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

Böyle görünmek için:

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$
    {
    }
}


3

Burada, C # temel sınıf Öğe Şablonunu güncelleyecek olan yeniden giren bir PS komut dosyası verilmiştir . Yol, kullandığınız Visual Studio sürümüne / sürümüne bağlı olarak değişir. Ayrıca, gelecekte geri dönmek istemeniz durumunda orijinal şablonu da yedekler.

$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 $_
 }

Yolum oldu ..\2017\Professional\...ve ben elle düzenlenebilir ancak bu 2017 teşekkür için yeni klasör yapısını gösterdi.
ste-fu

2

JochemKempe'nin harika cevabına ek olarak, işte bunu .NET çekirdek şablonları için nasıl yapacağınız.


.NET Çekirdeği

\CSharp\Dizinin içindeki şablonları düzenlemek yerine, içindekileri düzenlemeniz gerekir \AspNetCore\.

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

VS2019 (Profesyonel) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\AspNetCore\Code\1033\Class\Class.cs


1

JochemKempe'nin cevabı gayet iyi çalışıyor, ancak biraz zor çünkü korumalı dosyaları içinde yeniden yazmanız gerekiyor Program Files.

Sadece cevabı güncellemek için. Topluluk sürümü için şablonlar klasörün içindedir:

c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ProjectTemplates

Başka bir çözüm

Ancak yeni şablonlar oluşturmanın başka bir yolu var. Dosyaları kaynak klasörden kullanıcı şablonu klasörüne kopyalayın.

ör. Windows Form uygulaması için şu kaynak klasörlerden biri olabilir (Visual Studio 2017 Topluluğu için) :

c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows\1033\WindowsApplication\
c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows\1033\WindowsApplication\
c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplatesCache\CSharp\Windows Root\Windows\1033\WindowsApplication\

Varsayılan kullanıcı şablonu klasörü (Visual Studio 2017 Topluluğu için) :

C:\Users\<username>\Documents\Visual Studio 2017\Templates\ProjectTemplates\

Yeni Windows Form Uygulama şablonunun hedef klasörü şöyle olacaktır:

C:\Users\<username>\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\Windows\1033\MyWindowsApplication\

Bununla, yeni proje oluştururken iki "Windows Form Başvurusu" na sahip olacaksınız. Bu ikisi arasındaki fark yalnızca varsayılan dosya adındadır. Daha iyi bir ayrım yapmak için, şablonun görüntülenen adını değiştirmek mümkündür. Şablon adını değiştirmek için .vstemplatedosyayı güncelleyin .

Orijinal şu csWindowsApplication.vstemplatesatırı içerir:

    <Name Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2318" />

İsmi değiştirmek için satırı şuna benzer bir şekilde değiştirmeniz gerekir:

    <Name ID="2318">My Windows Form Application</Name>

Bu çözümün olumsuz yanı, yeni şablonunuzu yeniden adlandırmanız ve mevcut şablonlara yeni bir şablon eklemenizdir (eski 'yanlış' örnek kalır ve yine de istemeden kullanabilirsiniz) .

Ancak bunun iyi bir yanı da var. Örneği eklemek veya güncellemek için yönetici olmanıza gerek yoktur. ( Program FilesKlasördeki dosyaları yeniden yazmaya gerek yoktur .)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.