找不到 C# 程序集中的 Ghostscript 调用

Posted

技术标签:

【中文标题】找不到 C# 程序集中的 Ghostscript 调用【英文标题】:Ghostscript call in C# assembly cannot be found 【发布时间】:2011-08-03 14:15:32 【问题描述】:

我正在使用 GhostScript 程序集将 PDF 文件转换为图像。 我使用的方法是这样的: http://www.codeproject.com/KB/cs/GhostScriptUseWithCSharp.aspx

当我在 Web 项目 (Windows 7 x64) 中使用我的工作站上提供的代码时,一切正常。

但是,在将其部署到服务器(Windows server 2008 R2 x64)时,会出现这样的错误。

System.DllNotFoundException:无法加载 DLL 'gsdll32.dll':找不到指定的模块。 (HRESULT 异常:0x8007007E)

我确实将 ghostscript 程序集放在了我的 web 应用程序的 bin 文件夹中,并确实更改了 iis 应用程序池的设置以允许 32 位应用程序。

当两个环境都是 64 位时,它怎么会在 Server 2008 R2 环境中不起作用?

【问题讨论】:

我遇到了同样的问题,我最终发现只有 GhostScriptSharp.dll 在 web 应用程序 bin 文件夹中,而不是 gsdll32.dl - 两者都需要。 【参考方案1】:

确保您的项目本身是 x86...

【讨论】:

我确实尝试将项目更改为 x86,但它有完全相同的错误。【参考方案2】:

您是否尝试过下载 x64 版本的 ghostscript(gs863w64.exe,GPL Ghostscript 8.63 for 64-bit Windows (x86_64)。)并将代码编译成 x64?

【讨论】:

您的意思是要发表评论吗?提出一个新问题并不能真正算作一个答案...... 是的,但接缝我只有最后一个答案的评论,我不想评论最后一个答案。同时我的问题就是答案,我问的是我在笔记本电脑上使用的东西。默认情况下,x64 操作系统上的 IIS 上的网站也需要 x64 DLL。除非您将网站池设置为 32 位,但请注意将其更改为 32 位会将使用此池的所有网站呈现为 32 位,因此您必须编译为 32 位。此外,安装自定义操作项目必须设置为所有 CPU ;) ...

以上是关于找不到 C# 程序集中的 Ghostscript 调用的主要内容,如果未能解决你的问题,请参考以下文章

Ghostscript 找不到 Ghostscript 库 (libgs)

python ghostscript:RuntimeError:找不到Ghostscript库(libgs)

在 NLTK 中找不到 ghostscript?

Django:为啥当我在 django 中通过 popen 使用 Ghostscript 时会出现“找不到文件”错误

.net 上的 Ghostscript 安装问题

如何从 C# 程序执行 ghostscript