【问题标题】:Can't load dll when send application to another PC将应用程序发送到另一台 PC 时无法加载 dll
【发布时间】:2011-07-31 16:29:26
【问题描述】:

我有以下解决方案:

MySolution
-Project: MyServer (WPF)
-Project: MyClient (WPF)
-Project: MyLibrary (Class library)

MyLibrary 内部,我引用了一个外部 DLL System.Data.SQLite 用于 SQLite 访问。我将dll设置为Copy to local,这样当我构建时,它会将dll复制到类库MyLibrary将被构建到dll的目录中。

在其他两个项目(MyClientMyServer)中,我引用了类库项目,这样我就可以访问我的共享例程,也可以访问 SQLite 库。这在开发机器上效果很好,但是当我将Release 文件夹复制到另一台机器时,客户端/服务器应用程序拒绝运行并抛出找不到 SQLite dll 的错误。

我在这里做错了什么?

问候

【问题讨论】:

  • Release 文件夹是否包含您的 SQLite DLL?这里可能存在 32 位/64 位问题吗? (开发机器是 64 位,目标机器是 32 位,反之亦然)
  • 在 64 位机器上编译,但在所有项目中使用设置“平台”设置为“x86”

标签: c# visual-studio-2010 deployment dll


【解决方案1】:

检查您的发布文件夹中是否有 sqlite.dll。您可以通过包管理控制台命令“Install-Package System.Data.Sqlite”使用 nuget 安装 i。

如果您随后收到“BadImageFormat”异常,请确保您为您的系统使用了正确版本的 sqlite。它有 32 位和 64 位版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    相关资源
    最近更新 更多