【发布时间】:2020-11-26 04:26:31
【问题描述】:
发生了一件非常奇怪的事情。 我想在我的源代码中使用 Image Magick 而不是使用命令行批处理,所以我尝试了 Image Magick.Net (https://recordnotfound.com/Magick-NET-dlemstra-154214) 但是 ....
让我们更准确地描述事物。
- 我使用的是 XP Pro SP3 32 位版本 2002 我以管理员身份登录。
我的系统有
- Microsoft Visual C++ 2012 可再发行版 (x86) 11.0.610.30
- Microsoft Visual C++ 2017 可再发行版 (x86) 14.11.25325
-
我打开 VS 2008
-
我在 C# 中创建了一个控制台应用程序类型的新项目。 我将其命名为“TestDLL”。
-
在 Program.cs 文件中, 在 'static void Main(string[] args)' 方法中, 我实例化了一个 ImageMagick 对象。
-
我从 nuget 站点 https://www.nuget.org/profiles/dlemstra 下载 DLL:
-
Magick.Native-Q8-x86.dll 13,7 MB(14 450 896 字节) 7.0.10.25 版权所有 2013-2020 Dirk Lemstra
-
Magick.NET.Core.dll 1,34 MB(1 407 696 字节) 4.1.0.0 版权所有 2013-2020 Dirk Lemstra
-
Magick.NET-Q8-x86.dll 467 KB(478 928 字节) 7.21.1.0 版权所有 2013-2020 Dirk Lemstra
- 我将这些 DLL 复制到这些目录中(假设我使用调试配置文件构建)
'TestDLL' 'TestDLL\bin' 'TestDLL\bin\Debug'
-
我在控制台应用程序中引用了 Magick.NET.Core.dll 和 Magick.NET-Q8-x86.dll
-
我在 Program.cs 中有一个 using 关键字来检测 MagickImage 对象。
-
我在调试配置文件中构建:一切正常(构建成功)
-
我启动。
-
我得到一个异常:“'NativeMagickSettings' 的类型初始化程序引发了异常。”
这些异常包含一个内部异常:
“无法加载 DLL 'Magick.Native-Q8-x86.dll':找不到指定的过程。(来自 HRESULT 的异常:0x8007007F)”
我不明白它为什么会崩溃...... 我做了所有预期的事情,这是一个非常“简约”的项目,只是为了测试......
我想念什么?
感谢大家的帮助:)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ImageMagick;
namespace TestDLL
{
class Program
{
static void Main(string[] args)
{
MagickImage image = new MagickImage();
}
}
}
堆栈跟踪:
在 ImageMagick.MagickSettings.NativeMagickSettings..ctor() 在 ImageMagick.MagickSettings..ctor() 在 ImageMagick.MagickImage..ctor() 在 TestDLL.Program.Main(String[] args) 在 D:\CODE\StandAlone\TESTS\TestDLL\TestDLL\Program.cs:13 行
在 System.AppDomain._nExecuteAssembly(程序集程序集,字符串 [] args) 在 System.AppDomain.ExecuteAssembly(String assemblyFile, 证据 assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(对象状态)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ContextCallback 回调、对象状态)在 System.Threading.ThreadHelper.ThreadStart()
我的 VS 安装:
Microsoft Visual Studio 2008 版本 9.0.30729.1 SP Microsoft .NET Framework Version 3.5 SP1 安装版:专业版微软 Visual C# 2008 91605-270-1746647-60768
【问题讨论】:
标签: c# dll imagemagick windows-xp 32-bit