2015-07-04 65 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