C#中将XML设为嵌入式资源可实现单文件部署:设Build Action为Embedded Resource,用Assembly.GetManifestResourceStream读取流并加载XDocument/XmlDocument。
在C#中,将XML文件打包为独立部署的资源,核心是将其嵌入程序集(Embedded Resource),并在运行时通过反射读取。这样无需额外分发XML文件,所有内容随EXE/DLL一同部署,真正实现“单文件”发布。
在Visual Studio中,右键项目中的XML文件 → “属性” → 将生成操作(Build Action)设为 Embedded Resource。确保复制到输出目录为“不复制”。文件将被编译进程序集,不再作为独立文件存在。
嵌入资源的名称默认为:默认命名空间.文件夹路径.文件名(全部小写,用点分隔)。例如:
可在代码中用以下方式列出所有嵌入资源,确认名称是否正确:
var names = Assembly.GetExecutingAssembly().GetManifestResourceNames(); foreach (var name in names) Console.WriteLine(name);
使用 Assembly.GetManifestResourceStream() 获取流,再用 XDocument 或 XmlDocument 加载:
var assembly = Assembly.GetExecutingAssembly();
using var stream = assembly.GetManifestResourceStream("MyApp.Data.config.xml");
if (stream != null)
{
var doc = XDocument.Load(stream); // 或 new XmlDocument().Load(stream)
// 后续处理...
}
注意:流只能读取一次,如需多次使用,请先读入 byte[] 或重新获取流。
为避免硬编码资源名和重复判断,可封装一个安全读取方法:
public static T LoadXmlResource(string resourceName) where T : class { var assembly = Assembly.GetExecutingAssembly(); using var stre am = assembly.GetManifestResourceStream(resourceName); if (stream == null) throw new InvalidOperationException($"资源未找到: {resourceName}"); if (typeof(T) == typeof(XDocument)) return XDocument.Load(stream) as T; if (typeof(T) == typeof(XmlDocument)) { var doc = new XmlDocument(); doc.Load(stream); return doc as T; } throw new NotSupportedException($"不支持的类型: {typeof(T).Name}"); }
调用示例:var doc = LoadXmlResource
# 编码
# app
# 工具
# stream
# c#
# Resource
# 命名空间
# 封装
# xml
# 泛型
# var
# visual studio
# 设为
# 加载
# 右键
# 并在
# 将其
# 请先
# 可在
# 将被
# 不支持
# 可选
相关文章:
自助网站制作软件,个人如何自助建网站?
成都网站制作报价公司,成都工业用气开户费用?
建站之星后台密码如何安全设置与找回?
深圳网站制作的公司有哪些,dido官方网站?
如何通过西部建站助手安装IIS服务器?
建站之星24小时客服电话如何获取?
宁波免费建站如何选择可靠模板与平台?
建站主机选购指南:核心配置优化与品牌推荐方案
潮流网站制作头像软件下载,适合母子的网名有哪些?
C#如何在一个XML文件中查找并替换文本内容
焦点电影公司作品,电影焦点结局是什么?
css网站制作参考文献有哪些,易聊怎么注册?
建站之星如何防范黑客攻击与数据泄露?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
购物网站制作公司有哪些,哪个购物网站比较好?
如何配置IIS站点权限与局域网访问?
如何通过老薛主机一键快速建站?
javascript基本数据类型及类型检测常用方法小结
宝塔建站无法访问?如何排查配置与端口问题?
如何选择靠谱的建站公司加盟品牌?
,如何利用word制作宣传手册?
大连 网站制作,大连天途有线官网?
网站制作报价单模板图片,小松挖机官方网站报价?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
建站之星安装模板失败:服务器环境不兼容?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何零基础在云服务器搭建WordPress站点?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
如何快速生成凡客建站的专业级图册?
装修招标网站设计制作流程,装修招标流程?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
如何在阿里云部署织梦网站?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何零成本快速生成个人自助网站?
nginx修改上传文件大小限制的方法
,有什么在线背英语单词效率比较高的网站?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何选择建站程序?包含哪些必备功能与类型?
营销式网站制作方案,销售哪个网站招聘效果最好?
TestNG的testng.xml配置文件怎么写
如何彻底卸载建站之星软件?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
建站主机解析:虚拟主机配置与服务器选择指南
建站之星免费版是否永久可用?
如何在IIS7中新建站点?详细步骤解析
建站之星安装需要哪些步骤及注意事项?
香港服务器租用费用高吗?如何避免常见误区?
*请认真填写需求信息,我们会在24小时内与您取得联系。