Visual Studio에서 새 클래스를 만들 때 새 클래스를 어떻게 기본값으로 공개합니까?


111

C # Visual Studio 프로젝트의 솔루션을 마우스 오른쪽 단추로 클릭하고 추가 ...> 클래스 ...를 선택하면 공용 수정 자없이 클래스가 생성됩니다. Visual Studio (2008)에서 클래스를 공용 클래스로 기본 설정하려면 어떻게해야합니까?


1
여기에 설명 된대로 클래스 템플릿을 변경해야합니다 . 단일 파일을 편집하는 것보다 약간 더 복잡하지만 (예상 할 수있는) 그렇게 나쁘게 들리지는 않습니다.
Jon Skeet

답변:


71

에있는 파일을 수정해야합니다 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033.

Visual Studio 2010 (10.0) 이하 : Class.zip이라는 zip 파일이 있습니다. 압축을 풀고 파일을 편집하여 public키워드에 넣은 다음 다시 압축 하십시오 (원본을 백업해야 함).

그런 다음 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCacheVisual Studio 명령 셸을 열고 다음 명령을 실행하여 VS가 캐시 (에서 디렉터리로 압축이 풀린 zip 파일)를 다시 빌드하는지 확인합니다 .

devenv /installvstemplates

Visual Studio 2012 (11.0) 이상 : 단일 파일을 편집 (압축 해제 또는 다시 압축하지 않음)하는 것만으로 지금 변경하는 것이 훨씬 쉽기 때문에 @JochemKempe의 답변을 참조하십시오 .

업데이트 : 편집하기 전에 관리자 권한으로 선호하는 텍스트 편집기를 여는 것을 잊지 마십시오.


감사합니다. VS 2012가 설치된 64 비트 Windows 7 컴퓨터에서이 경로는 C : \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp
Sudhanshu Mishra

다른 컴퓨터의 팀간에 항목 템플릿을 변경하려면 어떻게해야합니까?
DevDave 2013

VS2013에서는 VS2013 용 개발자 명령 프롬프트를 관리자 권한으로 실행하고 Visual Studio를 닫은 후 명령을 실행해야합니다. VS가 열려있는 동안에는 완료되지 않습니다.
Chris Moschini

1
게시물이 거기에있는 정보를 포함하도록 편집되었으므로 @Guy가 참조한 블로그 게시물을 방문 할 필요가 없습니다. 당신이 경우 원하는 그 블로그 게시물을 방문, 그것은 이제 새로운 URL로 이동했습니다 guyellisrocks.com/2009/03/...
ErikE

151

VS2012 에서는 Class.csC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class 파일 로 이동하여 편집하는 것만 큼 쉽습니다.

캐시의 압축을 풀거나 다시 작성할 필요가 없습니다. 저에게 물어 보면 매우 긍정적 인 변화입니다.

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

VS2019 (엔터프라이즈) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

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

시대에 뒤쳐진

VS2019 (미리보기) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs


2
이것은 나를 위해 일하지 않는 것 같습니다. ItemTemplatesCache 디렉터리의 Class.cs 파일도 교체했습니다. 매번 VS2012를 재부팅했습니다. 캐시를 재 구축하는 방법이 있습니까?
crush

7
VS2013의 경우 다음 위치를 사용하십시오. C : \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class
Zar Shardan

6
실제 클래스 템플릿을 업데이트하려면 텍스트 편집기를 관리자 모드로 열어야 할 수 있습니다.
david.barkhuizen

3
VS2015의 경우 다음 위치를 사용합니다. C : \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class 그러나 Xamarin이 설치되어있는 경우 다음 위치에서 검색을 수행해야 할 수도 있습니다. 당신은 "Class.cs"에 대한 윈도우 드라이브. 결국 모든 결과를 공개로 변경했습니다.
JochemKempe 2015 년

2
Visual Studio 2019가 출시되었으므로 미리보기가 변경되어 버전을 표시해야합니다. 저는 Professional 만 설치했지만 나머지 두 개는 Community 및 Enterprise VS2019 Professional이 될 것 같습니다.C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
Dave Thompson

10

Visual Studio 2012 용 기본적으로 공용 클래스를 만들려면 :

이 파일을 편집하십시오.

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

이렇게 보이려면 :

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

다음은 C # 기본 클래스 Item Template을 업데이트 할 재진입 PS 스크립틀릿입니다 . 경로는 사용하는 Visual Studio의 버전 / 에디션에 따라 변경됩니다. 또한 나중에 되돌리려는 경우 원본 템플릿을 백업합니다.

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

내 경로는 ..\2017\Professional\...수동으로 편집했지만 2017 년의 새 폴더 구조가 표시되었습니다. 감사합니다.
ste-fu

2

JochemKempe 훌륭한 답변 외에도 .NET 코어 템플릿에 대해 수행하는 방법이 있습니다.


.NET Core

\CSharp\디렉토리 내의 템플릿을 편집하는 대신 \AspNetCore\.

VS2019 (엔터프라이즈) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\AspNetCore\Code\1033\Class\Class.cs

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


1

JochemKempe의 대답은 잘 작동하지만 .NET에서 보호 된 파일을 다시 작성해야하기 때문에 약간 어렵습니다 Program Files.

답변을 업데이트하기 위해서만. Community Edition 용 템플릿은 다음 폴더에 있습니다.

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

또 다른 해결책

그러나 새 템플릿을 만들 수있는 또 다른 가능성이 있습니다. 소스 폴더에서 사용자 템플릿 폴더로 파일을 복사합니다.

예를 들어 Windows Form 응용 프로그램의 경우 다음 소스 폴더 중 하나 일 수 있습니다 (Visual Studio 2017 Community의 경우) .

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\

기본 사용자 템플릿 폴더는 (Visual Studio 2017 커뮤니티 용) 다음과 같습니다.

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

새 Windows Form 응용 프로그램 템플릿의 대상 폴더는 다음과 같습니다.

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

이것으로 새 프로젝트를 만들 때 두 개의 "Windows Form Application"을 갖게됩니다. 이 둘의 차이점은 기본 파일 이름에만 있습니다. 더 나은 구별을 위해 템플릿의 표시 이름을 변경할 수 있습니다. 템플릿 이름을 변경하려면 .vstemplate파일을 업데이트 하십시오.

원본 csWindowsApplication.vstemplate에는 다음 줄 이 포함됩니다.

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

이름을 변경하려면 줄을 다음과 같이 변경해야합니다.

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

이 솔루션의 부정적인 부분은 새 템플릿의 이름을 바꾸고 기존 템플릿에 새 템플릿을 추가해야한다는 것입니다 (이전의 '잘못된'예제는 그대로 유지되며 여전히 원치 않게 사용할 수 있음) .

그러나 좋은 부분도 있습니다. 예제를 추가하거나 업데이트하기 위해 관리자 일 필요는 없습니다. ( Program Files폴더에 파일을 다시 쓸 필요가 없습니다 .)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.