You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

dotnet new模板打包时如何包含.editorconfig等隐藏点文件?

解决方案

核心原因

.NET SDK 执行dotnet pack时默认会自动排除所有以.开头的隐藏文件,该规则优先级高于普通的Content Include声明,因此单独添加的点文件包含配置不会生效。

修复步骤

  1. 在csproj文件的第一个PropertyGroup节点中添加<NoDefaultExcludes>true</NoDefaultExcludes>配置,关闭默认的隐藏文件排除规则即可。
  2. 原有ItemGroup的Content配置已经通配了templates目录下的所有文件,不需要重复单独声明两个点文件的包含规则。

修改后的完整csproj示例:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <PackageType>Template</PackageType>
    <TargetFramework>net6.0</TargetFramework>
    
    <IncludeContentInPack>true</IncludeContentInPack>
    <IncludeBuildOutput>false</IncludeBuildOutput>
    <ContentTargetFolders>content</ContentTargetFolders>
    <!-- 关闭默认隐藏文件排除规则 -->
    <NoDefaultExcludes>true</NoDefaultExcludes>
  </PropertyGroup>

  <PropertyGroup>
    <Description>dotnet new templates</Description>
    <PackageTags>template dotnet console</PackageTags>
    <Version>1.0.0</Version>   
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="**\*" />
    <Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**;templates\**\.vs\**" />
  </ItemGroup>

</Project>

额外模板配置校验

如果打包成功后,使用模板创建项目时仍然没有生成这两个文件,需要检查模板根目录下.template.config/template.json的配置,确保sources节点的排除规则没有包含点文件,参考配置如下:

{
  "sources": [
    {
      "modifiers": [
        {
          "exclude": [ "**/bin/**", "**/obj/**", "**/.vs/**", ".template.config/**" ]
        }
      ]
    }
  ]
}

打包结果验证

执行dotnet pack后,将生成的.nupkg文件后缀改为.zip解压,检查content目录下对应路径是否存在.editorconfig和.gitignore文件,即可确认打包是否成功。

内容的提问来源于stack exchange,提问作者TGlatzer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:27:00