【问题标题】:"Could not load file or assemly" "The specified file could not be found" exception“无法加载文件或程序集”“找不到指定的文件”异常
【发布时间】:2014-02-14 11:31:31
【问题描述】:

我正在尝试在另一台计算机上运行 C# 程序,由于在运行程序时遇到了一些问题,我将所有内容都放在了 Try 语句内的“window.initialized”事件中。

当我在另一台计算机上运行该程序时,我得到一个异常说“System.Data.SQLite.dll”找不到,即使它位于我正在执行的 .exe 的调试文件夹中位于。这感觉很奇怪,我不知道如何解决。

有人有想法吗?

【问题讨论】:

  • 文件夹中的版本是否与编译您的应用程序的版本相同?
  • 调试文件夹?你的意思是你是从另一台计算机上的 Visual Studio 运行的?
  • @ChrisBint 是的,是同一个版本。
  • @TonyHopkinson 我基本上压缩了我的调试文件夹(我在从 Visual Studio 调试程序时得到的)并将其发送到另一台计算机。
  • 您是否启用了融合日志记录以查看它可能正在加载(和失败)的其他内容

标签: c# wpf file exception .net-assembly


【解决方案1】:

以下是我知道会导致此问题的三点:

a) 正如您的 cmets 中所说,程序集引用指向另一个版本,而不是程序目录中的文件。

b) 应用程序的目标平台与程序集不同(即 x86 与 x64)。我不确定,但是当一个程序集针对“任何 CPU”构建而一个针对特定平台(x86 或 x64)构建时,它可能会导致应用程序在一台机器上运行,而不是在另一台机器上运行。

c) 引用的程序集的目标是 .NET 框架版本,该版本与应用程序本身不同,在开发机器上可用,但在另一台机器上不可用。这将导致程序集绑定异常。要检查,请在选择相关程序集后查看属性窗口:

不确定是否还有更多,但我希望它有所帮助。

【讨论】:

  • 我的机器和我正在测试程序的机器都运行 x64,因为它对我有用,所以不可能。但我会尝试安装程序集正在使用的 NET 版本并返回结果。
猜你喜欢
  • 2015-01-22
  • 1970-01-01
  • 2012-03-14
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多