无法加载文件或程序集'Magick.NET-x86.DLL'或其某个依赖项。

13

我使用了Magick.NET,这是ImageMagick的.NET封装器,在客户端机器上出现了上述错误。但在我的机器上却可以正常工作。因为我没有安装ImageMagick,所以我无法理解我需要在客户端机器上做什么。我已经安装了VS 2012。

此外,Magick.NET包含了ImageMagick,我认为它使用了C++/CLI,并将本地的ImageMagick接口暴露给.NET,全部在一个单独的DLL中。那么它需要哪个DLL呢?

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

3个回答

37

Magick.NET需要安装VC 2012 Runtime,而Magick.NET V7+ (.NET 4.0)需要安装2012和VC 2015 Runtime。请在客户端计算机上下载并安装。如果弹出“修复或卸载”对话框,则已经安装,并且您可能缺少其他依赖项。否则,请安装VCR并重新启动应用程序。


7
如果你想说“RTFM”,那么我只能说,地球上有哪个开发者会阅读库的文档来解决似乎来自框架的应用程序崩溃问题呢?“无法加载文件或程序集..”并不意味着“该库缺少依赖项。请查阅文档以了解缺少哪些依赖项。”此外,哪个开发者会假设一个轻量级的“包装”库需要另一个内部库不需要的系统组件呢?最后,即使你真的读了该死的手册,你也会读ImageMagick手册,而不是仅有3页的Magick.NET文档。 - Robin Rodricks
@Geotarget,你的VC2012和VC2015链接都指向同一个地方。 - Matt
1
@MattBaker - 谢谢。已更新帖子以反映。 - Robin Rodricks
1
@HarshGupta,你的问题解决了吗?我也遇到了同样的问题。你能指导一下我吗? - Nachiappan R
我不得不安装你推荐的东西并执行以下操作:https://dev59.com/T5rga4cB1Zd3GeqPiiY-#39711520。然后我重新启动了应用程序池。 - user1325179
显示剩余3条评论

7

我需要做的另一件事情是在IIS应用程序池的高级设置中启用32位应用程序。


0

我出现了错误

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 来修复问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接