好的,最后,我设法破解了一些对我有用的东西。也许这会有所帮助;
使用 Assembly.GetExecutingAssembly,从包含我要读取的配置文件的 DLL 中,我可以使用 .CodeBase 在为它启动新的 AppDomain 之前找到 DLL 的位置。*.dll .config 位于同一个文件夹中。
然后必须转换 URI(因为 .CodeBase 看起来像“file://path/assembly.dll”)以获取 ConfigurationManager 的 LocalPath(它不喜欢 Uri 格式的字符串)。
try
{
string assemblyName = Assembly.GetExecutingAssembly().GetName().Name;
string originalAssemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
Uri uri = new Uri(String.Format("{0}\\{1}.dll", originalAssemblyPath, assemblyName));
string dllPath = uri.LocalPath;
configuration = ConfigurationManager.OpenExeConfiguration(dllPath);
}
catch { }