C#控制台程序读取项目内文件路径遇NullReferenceException,求解决
解决C#控制台程序读取项目内文件路径的问题
你遇到的NullReferenceException是因为控制台程序不存在ASP.NET的HttpContext上下文,HttpContext.Current会返回null,自然无法调用Server.MapPath。下面是几种适合控制台程序的文件路径读取方案:
方案1:通过程序集获取执行目录
using System.IO; using System.Reflection; // 获取当前程序集所在的目录 string assemblyDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); // 拼接模板文件的完整路径 string templatePath = Path.Combine(assemblyDirectory, "EmailTemplate", "HODEmailTemplate.html");
方案2:通过AppDomain获取应用基目录
using System.IO; using System; // 获取应用程序的基目录(通常是bin/Debug或bin/Release) string baseDirectory = AppDomain.CurrentDomain.BaseDirectory; string templatePath = Path.Combine(baseDirectory, "EmailTemplate", "HODEmailTemplate.html");
关键注意事项
- 右键项目中的
HODEmailTemplate.html文件,在属性窗口设置复制到输出目录为「如果较新则复制」或「始终复制」,这样编译时文件会被同步到输出目录,程序才能找到它。
内容的提问来源于stack exchange,提问作者Edwin K Biju
相关产品推荐
相关产品推荐

