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

如何让C#生成的DLL文件自动读取同目录下的XML配置文件

C# DLL动态读取同目录XML配置文件解决方案

常见错误说明:多数同目录配置读取失败的原因是误用了Directory.GetCurrentDirectory()或者直接写相对路径"conf.xml",这两种写法默认基于调用DLL的主程序的工作目录,而非DLL自身所在目录,会导致配置文件找不到。

实现代码

首先需要引入对应的命名空间:

using System.Reflection;
using System.IO;
using System.Xml.Linq;

步骤1:动态获取DLL自身所在目录

// 获取当前运行的DLL对应的程序集实例
Assembly currentDllAssembly = Assembly.GetExecutingAssembly();
// 获取DLL文件的完整物理路径
string dllFullPath = currentDllAssembly.Location;
// 提取DLL所在的文件夹路径
string dllFolderPath = Path.GetDirectoryName(dllFullPath);
// 拼接得到配置文件的完整路径
string configFilePath = Path.Combine(dllFolderPath, "conf.xml");

步骤2:读取XML配置内容

这里以更简洁的LINQ to XML为例:

// 加载XML配置文件
XDocument configDoc = XDocument.Load(configFilePath);
// 示例:读取指定节点的配置值
var targetSetting = configDoc.Descendants("你的自定义节点名").FirstOrDefault()?.Value;

配套设置(原项目编译阶段配置)

  • 把conf.xml放到类库项目的根目录下,右键点击文件选择「属性」,设置「复制到输出目录」为如果较新则复制,编译时会自动把配置文件和DLL同步输出到bin目录,不需要手动拷贝。
  • 如果DLL需要放到C:\Program Files (x86)这类系统权限目录,调用DLL的主程序需要以管理员身份运行,否则会触发权限不足的读取错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:57:05