C# 当应用程序路径下(不同文件夹)存在多个同名dll,运行时它会引用哪一个呢?

首先,程序集加载器会搜索应用程序的当前工作目录,其中包括应用程序本身所在的目录。

如果在当前工作目录中找到多个同名的 DLL 文件,则程序集加载器将按照特定的顺序来决定哪个 DLL 文件被加载。这个加载顺序通常是基于操作系统和 .NET Framework 的规范,但一般来说,首先搜索会先找到的 DLL 文件,然后是子目录中的 DLL 文件。

最终,程序集加载器会根据搜索的顺序尝试加载 DLL 文件,通常会选择第一个匹配到的 DLL 文件来进行加载。

因此,在这种情况下,具体引用哪一个 DLL 文件可能会有一定的随机性,取决于操作系统和 .NET Framework 的实际实现规则。

如果希望明确指定应用程序加载哪个具体的 DLL 文件,可以使用 AssemblyResolve 事件来进行自定义程序集解析逻辑,从而控制应用程序加载 DLL 的行为。

你可能感兴趣的:(C#,各种常见问题,c#,windows,开发语言)