C#IFilter未正确安装在解决方案中?

时间:2010-10-01 19:49:05

标签: c# visual-studio-2005 ifilter

从哪里开始....

我继承了一个应用程序,它使用EPocalipse.IFilter命名空间在前一个程序员(没有文档)的文件中搜索字符串。它有一些问题,第一个问题是VS Project缺少FilterReader.cs,FilterLoader.cs,我认为EPocalipse IFilters需要这些问题(基于我的研究)。第二个是app(在构建时)在运行时挂在ReadToEnd()上。

我在这里找到了这个帖子: TextReader Read and ReadToEnd hangs without throwing exception

哪个很棒......除了没有发布解决方案=( 由于我有这个问题和其他问题,我想我会开始一个新线程,因为我首先要确保正确安装IFilter。该项目构建,但仍然挂在某些文件(通常是MS Excel)上。

例如,如果我尝试在Visual Studio中“转到定义”以实现FilterReader的实例化,它只会显示选项卡“FilterReader [来自元数据]”。所以我假设FilterReader.cs文件丢失了(在项目解决方案资源管理器中也没有),这也可能是挂起问题的原因?

非常感谢任何帮助。

SK

1 个答案:

答案 0 :(得分:1)

有关该主题的详细信息,请查看this article [CodeProject]

悬挂问题,不容易解决。基本上,有两种可能的解决方案:

  1. 应用无限循环检查,就像您找到的主题一样。但是,一些非常复杂的文档仍然可能会挂在IFilter中,并且你无能为力(IFilters是COM组件,通常是闭源的)。
  2. 提取双线程:一个线程用于监视提取过程,并在超时时停止文档提取,另一个线程用于实际提取。如果您选择此路径,请记住您可能会遇到访问冲突异常,因为EPocalypse实现没有对多线程访问ifilter的COM保护。