Когда я щелкаю правой кнопкой мыши в решении проекта C # Visual Studio и выбираю Добавить ...> Класс ... он создает класс без общедоступного модификатора. Как мне заставить Visual Studio (2008) по умолчанию использовать публичный класс?
Когда я щелкаю правой кнопкой мыши в решении проекта C # Visual Studio и выбираю Добавить ...> Класс ... он создает класс без общедоступного модификатора. Как мне заставить Visual Studio (2008) по умолчанию использовать публичный класс?
Ответы:
Вам необходимо изменить файл, расположенный в C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033
.
Visual Studio 2010 (10.0) и ниже: там есть zip-файл с именем Class.zip. Распакуйте это, отредактируйте файл, добавив public
ключевое слово, затем снова упакуйте его (убедитесь, что вы сделали резервную копию оригинала).
После этого убедитесь, что VS перестраивает свой кеш (который представляет собой просто zip-файлы, распакованные в каталоги C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache
), открыв командную оболочку Visual Studio и выполнив следующую команду:
devenv /installvstemplates
Visual Studio 2012 (11.0) и выше: см. Ответ @JochemKempe , так как сейчас это намного проще изменить, просто отредактировав один файл (без разархивирования или повторного сжатия).
ОБНОВЛЕНИЕ: не забудьте открыть предпочитаемый текстовый редактор с правами администратора, прежде чем вносить какие-либо изменения.
В 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 (профессиональный) :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
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
Чтобы создать общедоступный класс по умолчанию для 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$
{
}
}
Вы можете создать свой собственный шаблон проекта или изменить существующий. Все эти файлы проекта основаны на шаблонах, поэтому вы можете изменять их и / или добавлять свои собственные.
Ознакомьтесь с этими ссылками:
Марк
Вот повторный скриптлет PS, который обновит шаблон элемента базового класса C # . Путь меняется в зависимости от того, какую версию / выпуск 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 год. Спасибо.
В дополнение к отличному ответу JochemKempe, вот как это сделать для основных шаблонов .NET.
Вместо того, чтобы редактировать шаблоны внутри \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
Ответ от 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» при создании нового проекта. Разница между ними только в имени файла по умолчанию. Чтобы лучше различать, можно изменить отображаемое имя шаблона. Чтобы изменить имя шаблона, обновите .vstemplate
файл.
В оригинале csWindowsApplication.vstemplate
есть строчка:
<Name Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2318" />
Чтобы изменить имя, вам нужно изменить строку на что-то вроде этого:
<Name ID="2318">My Windows Form Application</Name>
Отрицательная часть этого решения заключается в том, что вам нужно переименовать свой новый шаблон и добавить новый шаблон к существующим шаблонам (старый «неправильный» пример останется, и вы все равно можете его неохотно использовать) .
Но есть и хорошая сторона. Вам не нужно быть администратором, чтобы добавить или обновить пример. (Нет необходимости перезаписывать файлы в Program Files
папке.)