2011-08-08 49 views
1

我開發了一個軟件,使用microsoft.search.interop.dll作爲參考庫。 當我與調試模式下進行編譯,我的應用程序工作正常,但是當我嘗試在發佈模式下進行編譯,我得到這個錯誤:C#Microsoft.Search.Interop找不到

Microsoft.Search.Interop cannot be found.

我下載的代碼示例從http://archive.msdn.microsoft.com/windowssearch(DSearch項目)。

我該如何解決我的問題?

發現

解決方案(運行在一行以下):

set MSSdk=c:\Program Files\Microsoft SDKs\Windows\v7.1 
"%MSSdk%\Bin\tlbimp.exe" "%MSSdk%\Lib\SearchAPI.tlb" /namespace:Microsoft.Search.Interop /out:Microsoft.Search.Interop.dll /silent 
+0

我有時候也是這樣。與_.dll_ 。您是否嘗試去除您的解決方案的參考,節能解決方案,關閉它,重新打開它,然後重新加入_.dll_? – Otiel

+0

我找到了解決方案。現在,我嘗試用以下解決方法:設置MSSDK = C:\ Program Files文件\微軟的SDK \的Windows \ V7.1 「%MSSDK%\ BIN \ tlbimp.exe是」 「%MSSDK%\ LIB \ SearchAPI.tlb」/命名空間:Microsoft.Search.Interop /out:Microsoft.Search.Interop.dll /無聲 – CeccoCQ

+0

那好,你來給飼料回到你的問題。您應該使用解決方案創建一個新答案,並將其設置爲已接受。 – Otiel

回答

0

這可能是DLL不存在,或者其可能會在Visual Studio中的緩存問題。請嘗試下面的步驟。這個對我有用。

  1. this Link下載Windows Search 3.x SDK並解壓縮。
  2. 您會在文件夾名稱Managed中找到microsoft.search.interop.dll。
  3. 從您的項目中刪除microsoft.search.interop.dll的現有參考。
  4. 然後清理解決方案。
  5. 關閉您的項目並關閉Visual Studio。
  6. 重新打開該項目,並添加一個新的參考文件夾中名稱爲Managed的microsoft.search.interop.dll。
  7. 現在編譯項目
  8. 現在運行以下命令

    集MSSDK = C:\ Program Files文件\微軟的SDK \的Windows \ V7.1 「%MSSDK%\ BIN \ tlbimp.exe是」「 %MSSDK%\ LIB \ SearchAPI.tlb」 /namespace:Microsoft.Search.Interop /out:Microsoft.Search.Interop.dll /過沉默

+0

很抱歉,您請求的頁面無法找到。 – sv88erik

2

我用筆者提出的解決方案,它在視覺工作對我來說Studio 2012上的DSearch.zip MSDN示例。爲了實施該解決方案,在我導入項目後,我去了項目 - >{項目名稱}屬性。從那裏,去建立事件。語法筆者提出的代碼並沒有爲我一開始工作,但改變如下根本:

set MSSdk="c:\Program Files\Microsoft SDKs\Windows\v7.1" 
%MSSdk%\Bin\tlbimp.exe %MSSdk%\Lib\SearchAPI.tlb /namespace:Microsoft.Search.Interop /out:Microsoft.Search.Interop.dll /silent 

您可以確認這是通過運行在Windows命令還命令提示符。 (閱讀:「運行CMD以管理員身份」沒有消息響應==它的工作)

The solution is also voted on/accepted at social.MSDN.microsoft.com

+0

歡迎來到SO!我稍微編輯了你的帖子。 – Brian

+0

謝謝Brian! - 我看到你格式化爲包括維基/代碼語法highlighing,現在我可以肯定記住它是如何應用於未來的職位 – CSCProgrammer

0

我已經看到這個有很多,所以我想我可能會澄清一些..

這些命令屬於引用Microsoft.Search.Interop程序集的項目的預生成步驟。理想的情況下,會在項目的bin文件夾中生成該DLL,由「生成事件」一節中添加以下的「預生成事件命令行」:

set MSSdk=c:\Program Files\Microsoft SDKs\Windows\v7.1 

"%MSSdk%\Bin\tlbimp.exe" "%MSSdk%\Lib\SearchAPI.tlb" /namespace:Microsoft.Search.Interop /out:Microsoft.Search.Interop.dll /silent 

注意:您不希望使用在命令行和路徑上的/靜音開關將不同在64臺機器或取決於你有SDK的版本,所以我的是如下:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A