【问题标题】:Could not load file or assembly or one of its dependencies - searching in wrong folder?无法加载文件或程序集或其依赖项之一 - 在错误的文件夹中搜索?
【发布时间】:2022-06-11 11:59:57
【问题描述】:

我的代码正在运行,而且我从哪里开始得到这个:

System.Windows.Markup.XamlParseException: '无法加载文件或程序集 'Syncfusion.SfGrid.WPF, PublicKeyToken=3d67ed1f87d44c89' 或 它的依赖项之一。系统找不到指定的文件。'

FileNotFoundException:无法加载文件或程序集“Syncfusion.SfGrid.WPF,PublicKeyToken=3d67ed1f87d44c89”或其之一 依赖项。系统找不到指定的文件。

我按照其他帖子的建议运行了 fugslovw,但不知道如何解决这个问题。似乎汇编协议在错误的目录中寻找 Syncfusion.SfGrid.WPF.dll。 Syncfusion.SfGrid.WPF.dll 位于 /bin/Debug 文件夹中,那么为什么它不在那里搜索类似于它找到的其他程序集?我从 nuget 包中获得了这个 dll,它们在我的整个项目中都是相同的版本。我也尝试清理我的解决方案。请问有什么提示吗?我附上了两个失败的日志herehere。我期望的成功日志示例是here

【问题讨论】:

  • 您的程序似乎是从C:\Program Files\Computers and Structures\ETABS 19 运行的。您需要将所有必需的程序集复制到此目录中。
  • 我的程序是一个附加到 ETABS 的插件。我的插件工作正常,直到昨天才复制任何程序集,所以一定有一些变化。为什么成功日志的示例会查看 bin 文件夹而这个没有?是什么控制了这种行为?

标签: c# .net compiler-errors reference .net-assembly


【解决方案1】:

应用程序 (ETABS) 可能会使用 Assembly.LoadFrom 加载您的 DLL,因此此时可以解决依赖关系。

当后来的 WPF 尝试加载额外的依赖项时,它不知道你的插件的位置,因此不考虑你的 bin 目录。

我们在插件架构上遇到了类似的问题,并通过在创建 WPF 控件之前预加载所有必需的依赖项来解决它,例如由

_ = new AnyTypeFromTheAssembly();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多