C# Can';t使用Magick.NET:System.EntryPointNotFoundException

C# Can';t使用Magick.NET:System.EntryPointNotFoundException,c#,imagemagick,magick.net,initialization,C#,Imagemagick,Magick.net,Initialization,我刚刚尝试在我的C#项目中使用Magick.NET(Q16,AnyCpu)。我通过Monodevelop中的nuget安装了它(我在linux上),并尝试在我的项目中使用以下代码测试它: using ImageMagick; // ... MagickImage img = new MagickImage(requestedPath); img.Thumbnail(new MagickGeometry(thumbnailWidth, thumbnailHeight)); cycle.Resp

我刚刚尝试在我的C#项目中使用Magick.NET(Q16,AnyCpu)。我通过Monodevelop中的nuget安装了它(我在linux上),并尝试在我的项目中使用以下代码测试它:

using ImageMagick;

// ...

MagickImage img = new MagickImage(requestedPath);
img.Thumbnail(new MagickGeometry(thumbnailWidth, thumbnailHeight));
cycle.Response.ContentType = "image/webp";
img.Write(httpContext.Response.OutputStream, MagickFormat.WebP);
img.Dispose();
…但我在第一行有个例外。古怪的以下是堆栈跟踪的相关部分:

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'X64' threw an exception. ---> System.EntryPointNotFoundException: SetDllDirectory
  at (wrapper managed-to-native) ImageMagick.NativeLibraryLoader+NativeMethods:SetDllDirectory (string)
  at ImageMagick.NativeLibraryLoader.ExtractLibrary () <0x4089f680 + 0x0009b> in <filename unknown>:0 
  at ImageMagick.NativeLibraryLoader.Load () <0x4089f640 + 0x00027> in <filename unknown>:0 
  at ImageMagick.MagickSettings+NativeMethods+X64..cctor () <0x4089f530 + 0x0000b> in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at ImageMagick.MagickSettings+NativeMagickSettings..ctor () <0x4089f3e0 + 0x00017> in <filename unknown>:0 
  at ImageMagick.MagickSettings..ctor () <0x4089efb0 + 0x000a7> in <filename unknown>:0 
  at ImageMagick.MagickImage..ctor () <0x4089eee0 + 0x00033> in <filename unknown>:0 
  at ImageMagick.MagickImage..ctor (System.String fileName) <0x4089ee90 + 0x00017> in <filename unknown>:0 
...
未处理的异常:
System.TypeInitializationException:“X64”的类型初始值设定项引发异常。-->System.EntryPointNotFoundException:SetDllDirectory
在(包装器管理为本机)ImageMagick.NativeLibraryLoader+NativeMethods:SetDllDirectory(字符串)
位于:0中的ImageMagick.NativelLibraryLoader.ExtractLibrary()处
在:0中的ImageMagick.NativelLibraryLoader.Load()处
在:0中的ImageMagick.MagickSettings+NativeMethods+X64..cctor()处
---内部异常堆栈跟踪的结束---
在ImageMagick.MagickSettings+NativeMagickSettings..ctor()中:0
在:0中的ImageMagick.MagickSettings..ctor()处
在:0中的ImageMagick.MagickImage..ctor()处
位于:0中的ImageMagick.MagickImage..ctor(System.String文件名)
...

这是怎么回事?

Magick.NET目前只能在Windows上运行。有计划在Magick.NET的.NET核心版本中添加对Linux的支持。在撰写本文时,还不知道这将在何时发生


编辑:已添加对Linux的支持。对Mac的支持仍在待办事项列表中。

感谢您的帮助。可惜没有办法让它工作。是否有一个可供我使用的跨平台生成缩略图的图像处理库?@jayantsingh目前只有Windows和Linux支持。Mac仍然在待办事项列表中。@dlemstra你能帮我吗?或者你需要多长时间?或者,如果您可以推荐任何其他支持lib的过滤器,如lanczos、双三次和双线性