gpt4 book ai didi

magick.net - 无法在 DLL 'Environment_SetEnv' 中找到名为 'Magick.NET-Q8-x64.Native.dll' 的入口点

转载 作者:行者123 更新时间:2023-12-03 18:35:49 29 4
gpt4 key购买 nike

升级到最新的 ImageMagick/Magick.NET (7.0.2.901),它在本地构建和运行良好,但在服务器上因此错误而爆炸。

Unable to find an entry point named 'Environment_SetEnv' in DLL 'Magick.NET-Q8-x64.Native.dll'.



好像是个新问题。从这里的更改描述来看:

https://magick.codeplex.com/discussions/650746

不再需要 VC 运行时,因此安装它们不会成为问题 - 而且,我已经为该库的先前版本安装了 2008、2012 和 2015 VC 运行时,效果很好。

IIS 中的 Windows Server 2008 64 位、64 位 .Net 4。

当前的解决方法是回滚到 7.0.0.22,它可以正常运行。
Install-Package Magick.NET-Q8-AnyCPU -Version 7.0.0.22

ImageMagick.X64.Environment_SetEnv(IntPtr name, IntPtr value)

最佳答案

几个月前我遇到了这个问题,最终发现了两个不同的原因:

  • AnyCPU 与先前版本冲突

    问题:Magick.NET 将本地库缓存在临时目录中,除非它已经存在 ( Relevant source code )。由于我之前曾用 Q8-x64 版本(不测试 CPU 架构)进行过测试,因此 Magick.NET-Q8-x64.Native.dll已经存在并且没有被覆盖。

    解决方案:删除 native 库的临时目录。在我的 Windows 版本中,它位于 %TEMP%\Magick.NET.{TargetFramework}.{MagickNETVersion} . Q8-AnyCPU 版本随后使用 Environment_SetEnv 提取了一个新的本地库。方法。
  • 缓存目录权限不足

    问题: native 库缓存在执行代码的权限受限的目录中。

    解决方法:更改缓存目录的位置。我的解决方案是以下代码。

    #if DEBUG
    private static bool MagickCacheDirectoryIsSet = false;

    public DefaultConstructor()
    {
    if (!MagickCacheDirectoryIsSet)
    {
    ImageMagick.MagickAnyCPU.CacheDirectory = @"path\to\more\permissive\directory";
    MagickCacheDirectoryIsSet = true;
    }
    }
    #endif
  • 关于magick.net - 无法在 DLL 'Environment_SetEnv' 中找到名为 'Magick.NET-Q8-x64.Native.dll' 的入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39127441/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com