【问题标题】:Could not load file or assembly 'Magick.NET-x86.DLL' or one of its dependencies无法加载文件或程序集“Magick.NET-x86.DLL”或其依赖项之一
【发布时间】:2014-06-12 01:42:04
【问题描述】:

我使用了 Magick.NET,它是 ImageMagick 的 .NET 包装器,它会在客户端计算机上引发上述错误。不过,它在我的机器上运行良好。我还没有安装 ImageMagick,所以我根本无法理解我需要在客户端机器上做什么。我已经安装了 VS 2012。

此外,Magick.NET 在其中包含 ImageMagick,我认为它使用 C++/CLI 并向本机 ImageMagick 公开 .NET 接口,所有这些都在单个 DLL 中。那么它需要什么DLL呢?

(我刚刚遇到这个错误,所以发布了我找到的解决方案。)

【问题讨论】:

    标签: c# image-processing imagemagick computer-vision


    【解决方案1】:

    我有错误

    System.TypeInitializationException: The type initializer for 'X86' threw an exception. ---> 
    System.DllNotFoundException: Unable to load DLL 'Magick.NET-Q16-x86.Native.dll': Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
    

    通过设置修复应用程序池 -> 高级设置 -> 启用 32 位 = false

    【讨论】:

      【解决方案2】:

      对我来说,还需要一件事: 在 IIS 应用程序池 -> 高级设置 -> 启用 32 位应用程序

      【讨论】:

        【解决方案3】:

        Magick.NET 需要安装 VC 2012 Runtime,而 Magick.NET V7+ (.NET 4.0) 需要安装 2012 和 VC 2015 Runtime。下载并安装在客户端机器上。如果它弹出一个“修复或卸载”对话框,那么它已经安装,你可能是missing another dependency。如果没有,请安装 VCR 并重新启动您的应用。

        【讨论】:

        • +1 感谢您为我阅读文档,因为显然我做不到。我唯一要补充的是,如果您的 Magick.NET 应用程序面向 .NET 2 或 3.5,您需要 VC 2008 运行时。
        • @JayRiggs - 如果你想说“RTFM”,那么我要说的是,地球上的哪个开发人员会阅读图书馆的文档来解决似乎来自的应用程序崩溃框架? “无法加载文件或程序集..”绝不意味着“此库缺少依赖项。请 RTFM 知道哪个。”此外,哪个开发人员认为轻量级“包装”库需要内部库不需要的额外系统组件?最后,即使您确实阅读了 f'ing 手册,您也会阅读 ImageMagick 手册,而不是 3 页的 Magick.NET 文档。
        • @Geotarget 您的 VC2012 和 VC2015 链接都指向同一个地方
        • @MattBaker - 谢谢。更新帖子以反映。
        • @HarshGupta 你的问题已经解决了,我也面临同样的问题。你能指导我吗?
        猜你喜欢
        • 2018-03-01
        • 2011-05-23
        • 2021-12-12
        • 2012-01-14
        • 1970-01-01
        相关资源
        最近更新 更多