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

.NET Core 生产环境下如何包含指定文件夹?

解决ASP.NET Core发布后找不到邮件模板文件的问题

我来帮你搞定这个发布时模板丢失的问题!你遇到的核心问题是:Debug模式下项目文件都在源码目录里,能正常找到模板;但生产发布时,默认不会把Email文件夹下的.cshtml文件复制到输出目录,所以代码运行时找不到文件。

正确的.csproj配置方案

把你之前的<Views Include="Email\**" />替换成下面的配置,它会确保邮件模板文件被包含到发布包中:

<ItemGroup>
  <Content Include="Email\**\*.cshtml">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>

配置说明:

  • <Content>:标记这些文件为项目的内容资源,告诉构建系统需要处理它们
  • Email\**\*.cshtml:递归匹配Email文件夹下所有的.cshtml模板文件(包括子目录,如果有的话)
  • <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>:确保构建或发布时,把这些文件复制到输出目录,并且只复制比输出目录中已有文件更新的版本,避免重复复制

额外检查点

  1. 确认Config.Env.ContentRootPath在生产环境指向的是发布后的输出目录,而不是你的本地源码目录。生产环境中源码目录通常不会部署到服务器,所以必须依赖复制到输出目录的模板文件。
  2. 如果你的模板文件有更新,重新发布前可以先清理项目(右键项目 → 清理)再构建发布,确保最新的模板被复制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:32:38