Как вы по умолчанию открываете новый класс для публики при его создании в Visual Studio?

Когда я нажимаю правой кнопкой мыши в решении проекта С# Visual Studio и выбираю Add... > Class..., он создает класс без общедоступного модификатора. Как заставить Visual Studio (2008) присвоить класс классу классу?

Ответ 1

Вам нужно изменить файл, расположенный в C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033.

Visual Studio 2010 (10.0) и ниже: Здесь есть zip файл, называемый Class.zip. Распакуйте это, отредактируйте файл, чтобы поместить в свое ключе public, а затем повторно упакуйте его (убедитесь, что вы создали резервную копию оригинала).

После этого убедитесь, что VS перестроит его кеш (который только распакован zipfiles в директории в C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache), открыв командную оболочку Visual Studio и выполнив следующую команду:

devenv /installvstemplates

Visual Studio 2012 (11.0) и выше: См. ответ @JochemKempe, так как это намного проще изменить сейчас, просто отредактировав один файл (не распаковывая или не распаковывая).

ОБНОВЛЕНИЕ: Не забудьте открыть предпочтительный текстовый редактор с правами администратора, прежде чем выполнять какие-либо изменения.

Ответ 2

В VS2012 это так же просто, как перейти к C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class и редактировать файл Class.cs.

Не нужно разархивировать или пересобрать кеш. Очень позитивные изменения, если вы спросите меня.

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

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

VS2019 (Professional): 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

Ответ 3

Чтобы создать открытый класс по умолчанию для 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$
    {
    }
}

Дополнительная информация: http://aaron-hoffman.blogspot.com/2013/05/edit-default-visual-studio-2012-item.html

Ответ 4

Вы можете либо создать свой собственный шаблон проекта, либо изменить существующий. Все эти файлы проектов управляются шаблонами, поэтому вы можете их изменять и/или добавлять самостоятельно.

Ознакомьтесь с этими ссылками:

Марк

Ответ 5

Вот скрипт 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 $_
 }

Ответ 6

Ответ от JochemKempe работает отлично, но немного сложно, так как вам нужно перезаписать защищенные файлы в Program Files.

Только чтобы обновить ответ. Шаблоны для издания Community находятся в папке:

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

Другое решение

Но есть и другая возможность создавать новые шаблоны. Скопируйте файлы из исходной папки в папку шаблона пользователя.

например, для приложения Windows Form это может быть одна из следующих исходных папок (для сообщества Visual Studio 2017):

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.)

Ответ 7

В дополнение к отличному ответу JochemKempe, вот как это сделать для основных шаблонов .NET.


.NET Core

Вместо того, чтобы редактировать шаблоны внутри \CSharp\, вам нужно отредактировать \AspNetCore\ внутри \AspNetCore\.

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

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