在Visual Studio 2013中使用nuget,我在我的Windows x64 PC上将Ghostscript.NET安装到我的项目中。
为了确保我不是疯了,我检查了一下:
PM> Install-Package Ghostscript.NET
'Ghostscript.NET 1.2.0' already installed.
Project already has a reference to 'Ghostscript.NET 1.2.0'.
PM>
该项目由多个开发人员使用。它针对任何CPU,并且需要保持这种状态。
这是我的代码:
public static void GhostscriptNetProcess(String fileName, String outputPath)
{
var version = GhostscriptVersionInfo.GetLastInstalledVersion();
var source = (fileName.IndexOf(' ') == -1) ? fileName : String.Format("\"{0}\"", fileName);
var output_file = (outputPath.IndexOf(' ') == -1) ? outputPath : String.Format("\"{0}\"", outputPath);
var gsArgs = new List<String>();
gsArgs.Add("-q");
gsArgs.Add("-dNOPAUSE");
gsArgs.Add("-dNOPROMPT");
gsArgs.Add("-sDEVICE=pdfwrite");
gsArgs.Add(String.Format(@"-sOutputFile={0}", output_file));
gsArgs.Add("-f");
gsArgs.Add(source);
var processor = new GhostscriptProcessor(version, false);
processor.Process(gsArgs.ToArray());
}
每当我尝试调试应用程序时,都会收到以下错误消息:
未处理的类型&#39; Ghostscript.NET.GhostscriptLibraryNotInstalledException&#39;发生在Ghostscript.NET.dll
其他信息:此托管库在32位进程下运行,需要在此计算机上安装32位Ghostscript本机库!要下载正确的Ghostscript本机库,请访问:http://www.ghostscript.com/download/gsdnld.html
查找Ghostscript.NET.GhostscriptLibraryNotInstalledException没有提供任何有用的信息,但this post on CodeProject表示调试器以32位模式运行,而我安装了64位版本。
答案 0 :(得分:6)
如果使用MS Test进行测试,则必须设置运行测试的处理器体系结构,因为Ghostscript.Net会验证进程体系结构(Environment.Is64BitProcess)以在注册表中搜索ghostscript安装。
在菜单&gt;测试&gt;测试设置&gt;默认处理器架构&gt; X64。
答案 1 :(得分:4)
你真的安装了Ghostscript吗?
Ghostscript.NET只是Ghostscript的.NET接口,它在我看来就像消息一样:
&#34;此托管库在32位进程下运行,需要在此计算机上安装32位Ghostscript本机库!要下载正确的Ghostscript本机库,请访问:http://www.ghostscript.com/download/gsdnld.html&#34;
试图告诉你,你没有安装32位版本的Ghostscript。它甚至会告诉你去哪里下载副本。
你安装了Ghostscript吗?你安装了32位版本的Ghostscript吗?