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

.NET 8中如何嵌入文本文件并在代码中引用其内容?

.NET 8 嵌入资源并读取内容(不输出到构建目录)

方法一:直接使用嵌入式资源

  1. 将目标文件添加到项目后,在属性面板设置:
    • Build Action:Embedded Resource
    • Copy to Output Directory:Do not copy
  2. 通过程序集读取资源内容,注意资源名称格式为「项目命名空间.文件所在路径.文件名」(比如文件放在Resources文件夹下,命名空间是MyProject,资源名就是MyProject.Resources.config.txt)
    using System.IO;
    using System.Reflection;
    
    // 获取当前程序集
    var assembly = Assembly.GetExecutingAssembly();
    // 替换为你的资源全名
    var resourceFullName = "MyProject.Resources.config.txt";
    
    using var stream = assembly.GetManifestResourceStream(resourceFullName);
    using var reader = new StreamReader(stream);
    string fileContent = reader.ReadToEnd();
    
  3. 不确定资源全名时,可以用以下代码列出所有嵌入式资源:
    foreach (var name in Assembly.GetExecutingAssembly().GetManifestResourceNames())
    {
        Console.WriteLine(name);
    }
    

方法二:使用.resx资源文件(接近原.NET Framework用法)

  1. 在项目中添加一个.resx文件(右键项目→添加→新建项→资源文件)
  2. 右键.resx文件→添加现有项,选择要嵌入的文件,此时文件的Build Action会自动设为Embedded Resource,无需手动修改
  3. 确保.resx文件的访问修饰符设为public或internal(在.resx设计器顶部)
  4. 直接通过生成的资源类读取内容,和原代码几乎一致:
    // 假设.resx文件名为Resources.resx
    string fileContent = Resources.my_file;
    

两种方式都会将资源嵌入到程序集内部,不会单独出现在构建输出目录中,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:17:37