【问题标题】:How do you default a new class to public when creating it in Visual Studio?在 Visual Studio 中创建新类时如何将其默认为公共?
【发布时间】:2009-03-31 05:13:00
【问题描述】:

当我在 C# Visual Studio 项目的解决方案中单击鼠标右键并选择添加...> 类...时,它会创建一个没有公共修饰符的类。如何让 Visual Studio (2008) 将该类默认为公共类?

【问题讨论】:

  • 您需要更改课程模板,as described here。它比仅编辑单个文件(这可能是您所期望的)稍微复杂一些,但听起来还不错。

标签: visual-studio


【解决方案1】:

VS2012 中,就像转到 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class 并编辑 Class.cs 文件一样简单。

无需解压或重建缓存。如果你问我,这是一个非常积极的变化。

VS2015C:\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

【讨论】:

  • 这似乎对我不起作用。我什至还替换了 ItemTemplatesCache 目录中的 Class.cs 文件。每次都重新启动VS2012。有没有办法重建缓存?
  • 对于 VS2013 使用这个位置:C:\Program Files (x86)\Microsoft Visual Studio 12.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 但是,如果您安装了 Xamarin,您可能还需要在 Windows 驱动器上搜索“Class.cs”。我最终只是将所有结果更改为公开。
  • 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
【解决方案2】:

您需要修改位于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,因为现在更改它要容易得多,只需编辑单个文件(无需解压缩或重新压缩)。

更新:在进行任何编辑之前,不要忘记以管理员权限打开您首选的文本编辑器。

【讨论】:

  • 非常感谢。在带有 VS 2012 的 64 位 Windows 7 机器上,此路径位于 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp
  • 如果您想在不同机器上的团队之间更改项目模板,有什么想法吗?
  • 在 VS2013 中,您需要以管理员身份运行 VS2013 的开发人员命令提示符,并在关闭 Visual Studio 后运行该命令 - VS 打开时不会完成。
  • 无需访问@Guy 引用的博客文章,因为该文章已被编辑以包含在那里找到的信息。如果您想要访问该博客文章,它现在已移至新 URL:guyellisrocks.com/2009/03/…
【解决方案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$
    {
    }
}

【讨论】:

  • 非常有用。这对我有用。
【解决方案4】:

在 VS 2022 Professional 中,对于那些只想编辑 Class.cs 文件并继续前进的人,鉴于 2022 是 64 位并且不再位于 x86 路径中,因此更改了路径。现在是:

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

【讨论】:

    【解决方案5】:

    您可以创建自己的项目模板,也可以修改现有的模板。所有这些项目文件都是模板驱动的,因此您可以更改它们和/或添加自己的。

    查看这些链接:

    马克

    【讨论】:

      【解决方案6】:

      这是一个可重入的 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 年的新文件夹结构。谢谢。
      【解决方案7】:

      除了 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

      【讨论】:

      • 这就是我正在寻找的答案,谢谢!
      【解决方案8】:

      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文件夹中的文件无需重写。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-30
        • 2023-03-12
        • 1970-01-01
        相关资源
        最近更新 更多