C# xaml引用的依赖项不是从项目文件夹加载的,而是从可执行文件文件夹加载的

C# xaml引用的依赖项不是从项目文件夹加载的,而是从可执行文件文件夹加载的,c#,.net,wpf,dependencies,C#,.net,Wpf,Dependencies,我有以下简单的文件夹结构: 根 Root\Executable.exe 根目录\子文件夹 根目录\子文件夹\控制.dll 根目录\子文件夹\ ControlDependency.dll 子文件夹具有基于第三方库的控件。我希望控件从自己的文件夹加载依赖项,但它在可执行文件夹中查找依赖项 这是否正常以及发生的原因?生成项目时,所有引用的程序集都将复制到输出文件夹中,然后被引用。 .NET CLR按照以下步骤进行程序集解析: 检查配置文件 检查以前引用的程序集 检查全局程序集缓存 通过代码基或探测定

我有以下简单的文件夹结构:

Root\Executable.exe

根目录\子文件夹

根目录\子文件夹\控制.dll

根目录\子文件夹\ ControlDependency.dll

子文件夹具有基于第三方库的控件。我希望控件从自己的文件夹加载依赖项,但它在可执行文件夹中查找依赖项


这是否正常以及发生的原因?

生成项目时,所有引用的程序集都将复制到输出文件夹中,然后被引用。 .NET CLR按照以下步骤进行程序集解析:

  • 检查配置文件
  • 检查以前引用的程序集
  • 检查全局程序集缓存
  • 通过代码基或探测定位程序集
如果需要在运行时加载可位于任何文件夹(不仅仅是应用程序的bin文件夹)中的程序集,可以使用以下三种方法之一:

  • 将程序集安装到全局程序集缓存(GAC)中
  • 将应用程序配置(.config)文件与 标签
  • 使用AssemblyResolve事件
请按照此链接了解更多信息: