【发布时间】:2009-03-31 05:13:00
【问题描述】:
当我在 C# Visual Studio 项目的解决方案中单击鼠标右键并选择添加...> 类...时,它会创建一个没有公共修饰符的类。如何让 Visual Studio (2008) 将该类默认为公共类?
【问题讨论】:
-
您需要更改课程模板,as described here。它比仅编辑单个文件(这可能是您所期望的)稍微复杂一些,但听起来还不错。
标签: visual-studio
当我在 C# Visual Studio 项目的解决方案中单击鼠标右键并选择添加...> 类...时,它会创建一个没有公共修饰符的类。如何让 Visual Studio (2008) 将该类默认为公共类?
【问题讨论】:
标签: visual-studio
在 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
从 Visual Studio 2022 开始 VS 是 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
过时
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
您需要修改位于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 命令外壳并执行以下命令,确保 VS 重建它的缓存(即解压缩到 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache 目录中的压缩文件):
devenv /installvstemplates
Visual Studio 2012 (11.0) 及更高版本: 请参阅the answer by @JochemKempe,因为现在更改它要容易得多,只需编辑单个文件(无需解压缩或重新压缩)。
更新:在进行任何编辑之前,不要忘记以管理员权限打开您首选的文本编辑器。
【讨论】:
为 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$
{
}
}
【讨论】:
在 VS 2022 Professional 中,对于那些只想编辑 Class.cs 文件并继续前进的人,鉴于 2022 是 64 位并且不再位于 x86 路径中,因此更改了路径。现在是:
C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class
【讨论】:
您可以创建自己的项目模板,也可以修改现有的模板。所有这些项目文件都是模板驱动的,因此您可以更改它们和/或添加自己的。
查看这些链接:
马克
【讨论】:
这是一个可重入的 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 核心模板做的。
您需要编辑\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
【讨论】:
The answer from JochemKempe 工作正常,但有点困难,因为您需要重写Program Files 中的受保护文件。
仅用于更新答案。社区版的模板在文件夹中:
c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ProjectTemplates
但还有另一种可能创建新模板。将文件从源文件夹复制到用户模板文件夹。
例如对于 Windows 窗体应用程序,它可以是以下源文件夹之一(对于 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 窗体应用程序模板的目标文件夹是:
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>
此解决方案的负面部分是,您必须重命名新模板并向现有模板添加新模板(旧的“不正确”示例将保留,您仍然可以不情愿地使用它) em>。
但也有好的部分。您无需成为管理员即可添加或更新示例。 (Program Files文件夹中的文件无需重写。)
【讨论】: