2015-07-04 31 views
2

我正在创建网站,我正在使用日志分析器解析某种日志。当我安装在我的机器上时,我只能使用日志解析器。当另一台机器上运行我的项目,而无需安装日志分析器我得到下面的异常在C#中使用日志解析器而不安装它?

enter image description here

我可以logparser.dll看到我的我的安装文件夹(程序文件),但我不能够参考这个DLL 。它显示错误,这不是有效的程序集或COM component.Please参考我的截图

enter image description here

我怎么能在任何机器上运行我的项目,而无需安装日志分析器埃克?请帮帮我 ?

+0

你是否正在分发解析器的DLL与你的应用程序? – fk2

+0

您需要复制&注册logparser.dll –

+0

@ fk2,@ Alex K我有更新我的问题。请参考。 – Mahendran

回答

3

我可能有点不清楚我的评论添加相应的dll,所以我会再试一次:

LOGPARSER的写/过去的2005年更新的,这就是为什么它只是提供了COM风格的支持部署。要做到这一点安装LogParser,然后在您的Visual Studio解决方案转到参考 - >右键单击添加引用 - > COM并选中“MS实用工具1.0类型库 - 日志分析器接口”。确保文件版本与您的LogParser版本(2.2.10.0)相匹配。做完这些之后,解决方案的参考部分应该包含一个名为MSUtil的条目。在该条目中,如果您使用的是C#4.0或更高版本,请将“嵌入Interop类型”设置为true,否则请设置正确的部署选项(复制等)。

如果您使用的是C#4.0或更高版本,您还必须更改实例化类的方式,因为嵌入类型不需要COM以前的“类”注释。这意味着,你必须删除你的初始化代码的一类,这意味着

COMFileSystemInputContextClass inputFormat = new COMFileSystemInputContextClassClass();变成

COMFileSystemInputContextClass inputFormat = new COMFileSystemInputContextClass();

等。我只是试过这个,并让它运行。

+0

你可以在不同的机器上使用同一个项目工作,但不安装日志解析器吗? – Mahendran

+0

这取决于你的工作意思。你应该能够部署你的应用程序,而不需要在客户机上安装日志解析器,是的。但是,如果你想在不安装日志分析器的情况下开发/编译你的项目,我怀疑这是可能的。 EULA不仅禁止您制作自己的可再发行组件,还必须以某种方式将COM组件发布到Visual Studio。 – fk2