C#怎么把XML文件嵌入到程序集中作为资源

煙雲
发布: 2025-12-17 14:10:03
原创
101人浏览过
C#中可将XML设为嵌入资源打包进程序集,需设“生成操作”为Embedded Resource、“复制到输出目录”为“从不复制”,运行时用Assembly.GetExecutingAssembly().GetManifestResourceStream()配合资源名(格式:根命名空间.文件夹.文件名.xml)读取,资源只读且名称区分大小写。

c#怎么把xml文件嵌入到程序集中作为资源

在C#中,可以把XML文件作为嵌入资源(Embedded Resource)添加到程序集中,这样编译后XML内容会直接打包进DLL或EXE,无需外部文件依赖。

设置XML文件为嵌入资源

在Visual Studio中,右键项目中的XML文件 → 选择“属性” → 将“生成操作(Build Action)”改为 Embedded Resource。确保“复制到输出目录”设为“从不复制”,避免同时生成外部副本造成混淆。

获取嵌入的XML内容

运行时通过 Assembly.GetExecutingAssembly().GetManifestResourceStream() 获取流,再读取为字符串或加载为 XDocument/XmlDocument

  • 资源名称默认是“根命名空间.文件夹名.文件名.xml”,例如项目默认命名空间是 MyApp,XML放在 Data\config.xml,则资源名为 MyApp.Data.config.xml
  • 可用 Assembly.GetExecutingAssembly().GetManifestResourceNames() 列出所有嵌入资源名,调试时快速确认准确名称
  • 推荐用 using var stream = ...; using var reader = new StreamReader(stream); var xmlText = reader.ReadToEnd(); 安全读取

加载为XDocument示例

代码片段(假设资源名为 MyApp.Config.xml):

Text Mark
Text Mark

处理文本内容的AI助手

Text Mark 113
查看详情 Text Mark
var assembly = Assembly.GetExecutingAssembly();
using var stream = assembly.GetManifestResourceStream("MyApp.Config.xml");
if (stream != null)
{
    var doc = XDocument.Load(stream);
    // 后续解析使用 doc.Root 等
}
登录后复制

注意事项

嵌入资源是只读的,不能修改;若需动态配置,应改用配置文件或数据库。另外,资源名区分大小写,路径分隔符统一用英文点号(.),不是反斜杠(\)或正斜杠(/)。

基本上就这些,不复杂但容易忽略资源名拼写和命名空间匹配。

以上就是C#怎么把XML文件嵌入到程序集中作为资源的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号