0

在我的程序中,当我使用以下命令打开 PDF 文件时,我遇到了一个奇怪的问题:

 Process.Start("test.pdf");

第一次,文件打开得很好,但第二次我在任何 pdf 文件上使用此命令时,在代码中的任何位置,vshost.exe 崩溃。

我的下一步是禁用 vshost,在禁用 vshost 的情况下,应用程序自身崩溃。

当我说“崩溃”时,我的意思是它已经停止响应。

如果我创建一个新项目,它工作得很好,所以我的项目一定有问题吗?

iTextSharp在代码中的其他点使用库来创建 pdf,这可能是一个原因吗?

我意识到这个问题非常普遍,但我不知道是什么原因造成的,所以我不知道要提供什么信息。

更多信息:

当我在程序崩溃后查看调试器的输出时,它显示“程序'[4320] SmartShelf.exe: Managed (v4.0.30319)' has exited with code -1073741819 (0xc0000005)'Access violation'。”

编辑:有人知道使用 c# 查看 pdf 的任何其他方式吗?

4

2 回答 2

0

在调用 start("asdf.pdf") 之前,我会使用 using context 或 dispose 命令来摆脱任何打开的文件连接,看看是否能解决它。

还要确保您的进程在win7中以管理员身份运行。您可以尝试的另一件事是使用 process.start(cmd, "aspdf.pdf") 以这种方式启动命令窗口并调用 pdf 启动器。

于 2013-04-06T20:34:15.767 回答
0

虽然并不完美,但我最终的解决方案是在 webBrowser 控件中显示 pdf,方法是将 URL 设置为使用 PDF 的路径

webBrowser1.Navigate("asdf.pdf");

这将它显示在 adobe reader 中,但在 web 浏览器中。

这个解决方案非常适合我的需求(如果不是更好的话)并且不会导致应用程序崩溃。谢谢大家的建议。

于 2013-04-07T23:21:12.130 回答