在 VisualStudio 中创建新类时,如何将其默认为 public?

当我在一个 C # Visual Studio 项目的解决方案中右键单击并选择 Add... > Class... 它创建了一个没有公共修饰符的类。如何使 VisualStudio (2008)将类默认为公共类?

31232 次浏览

您需要修改位于 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033中的文件。

Visual Studio 2010(10.0)及以下版本: 这里有一个名为 Class.zip 的 zip 文件。解压缩这个文件,编辑文件放入您的 public关键字,然后重新包装它(确保您备份原始文件)。

之后,通过打开 Visual Studio 命令 shell 并执行以下命令,确保 VS 重新构建它的缓存(这只是解压缩到 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache目录中的 zipfiles) :

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

从 VisualStudio2022VS 开始,它是一个64位的应用程序,这意味着项模板位于 C:\Program Files\...而不是 C:\Program Files (x86)

VS2022(社区) : C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

VS2022(专业) : C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

VS2022(企业) : C:\Program Files\Microsoft Visual Studio\2022\Enterprise\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

默认情况下为 VisualStudio2012创建 Public 类:

编辑这个文件:

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 # 基类 项目模板。路径的更改取决于您使用的 VisualStudio 版本/版本。它还备份原始模板,以备将来需要恢复时使用。

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

JochemKempe 的答案工作得很好,但是有点难,因为需要在 Program Files中重写受保护的文件。

只是为了更新答案。社区版的模板在文件夹中:

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

另一个解决办法

但是还有另一种创建新模板的可能性。将文件从源文件夹复制到用户模板文件夹。

例如,对于 Windows 窗体应用程序,它可以是下列源文件夹之一 (适用于 VisualStudio2017社区):

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\

默认的用户模板文件夹是 (适用于 VisualStudio2017社区):

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

新 Windows 窗体应用程序模板的目标文件夹如下:

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

这样,在创建新项目时,您将有两个“ Windows 窗体应用程序”。这两者之间的区别仅在于默认文件名。为了进行更好的区分,可以更改模板的显示名称。若要更改模板名称,请更新 .vstemplate文件。

原版 csWindowsApplication.vstemplate包含以下内容:

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

要更改名称,您需要将行更改为以下内容:

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

这个解决方案的缺点是,必须重命名新模板,并向现有模板 (旧的“不正确”例子仍然存在,你仍然可以不情愿地使用它)添加新模板。

但也有好的一面。添加或更新示例不需要管理员。(不需要重写 Program Files文件夹中的文件。)

除了 JochemKempe 的伟大答案之外,下面还介绍了如何为.NET 核心模板做到这一点。


.NET 核心

您需要编辑 \AspNetCore\中的模板,而不是编辑 \CSharp\目录中的模板。

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

在 VS 2022 Professional 中,对于那些只想编辑 Class.cs 文件并继续前进的用户来说,它改变了路径,因为2022是64位的,不再在 x86路径中。现在是:

C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

在 VisualStudio2022中,您可以转到此位置并编辑 同学们文件。

C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class