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

时间:2014-03-26 08:03:29

标签: c# .net wpf dependencies

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

  

     

根\ Executable.exe

     

根\子文件夹

     

根\子文件夹\ Control.dll

     

根\子文件夹\ ControlDependency.dll

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

这是正常现象吗?为什么会这样?

1 个答案:

答案 0 :(得分:1)

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

  • 检查配置文件
  • 检查以前引用的程序集
  • 检查全局程序集缓存
  • 通过“代码库”或“探测”找到程序集

如果需要在运行时加载程序集,该程序集可以位于任何文件夹(不仅是应用程序的bin文件夹)中,您可以使用以下三种方法之一:

  • 将程序集安装到全局程序集缓存(GAC)
  • 使用应用程序配置(.config)文件 标签。
  • 使用AssemblyResolve事件

请按照此链接了解详情: