2011-08-08 5 views
1

참조 된 라이브러리로 microsoft.search.interop.dll을 사용하는 소프트웨어를 개발했습니다. 내가 디버그 모드로 컴파일 할 때 , 내 응용 프로그램은 제대로 작동하지만 릴리스 모드에서 컴파일 할 때,이 오류 얻을 : 나는 http://archive.msdn.microsoft.com/windowssearch (DSearch 프로젝트)에서 코드 샘플 다운로드 한C# Microsoft.Search.Interop을 찾을 수 없습니다.

Microsoft.Search.Interop cannot be found.

합니다.

문제를 어떻게 해결할 수 있습니까? 발견

솔루션 (한 줄에 다음과 같은 실행) :

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 \ Microsoft SDKs \ Windows \ v7.1을 설정하십시오. "% MSSdk % \ Bin \ tlbimp.exe" "% MSSdk % \ Lib \ SearchAPI.tlb"/ namespace : Microsoft.Search.Interop /out:Microsoft.Search.Interop.dll/silent – CeccoCQ

+0

문제에 대한 피드백을 제공하는 것이 좋습니다. 솔루션을 사용하여 새 대답을 작성하고 동의 한 것으로 설정해야합니다. – Otiel

답변

0

그것은 DLL이 존재하지 않거나 그 비주얼 스튜디오와 함께 문제를 캐싱 될 수있을 수 있습니다. 아래 단계를 따르십시오. 그것은 나를 위해 작동합니다.

  1. this Link에서 Windows Search 3.x SDK를 다운로드하고 압축을 풉니 다.
  2. microsoft.search.interop.dll은 Managed 폴더 이름 안에 있습니다.
  3. 프로젝트에서 microsoft.search.interop.dll의 기존 참조를 제거하십시오.
  4. 그런 다음 용액을 닦으십시오.
  5. 프로젝트를 닫고 Visual Studio를 닫습니다.
  6. 프로젝트를 다시 열고 관리되는 폴더 이름 안에있는 microsoft.search.interop.dll에 대한 새 참조를 추가하십시오.
  7. 지금
  8. 이제 다음 명령을

    세트를 실행 프로젝트를 컴파일 MSSdk = C : \ 프로그램 파일 \은 Microsoft SDKs \ 윈도우 \ v7.1을 "% MSSdk % \ 빈 \의 Tlbimp.exe를" " % MSSdk % \ lib 디렉토리 \ SearchAPI.tlb "/namespace:Microsoft.Search.Interop /out:Microsoft.Search.Interop.dll/silen

+0

죄송합니다, 요청한 페이지를 찾을 수 없습니다. – sv88erik

2

나는 저자의 제안 된 솔루션을 사용하고 비주얼에 나를 위해 일한 DSearch.zip MSDN 예제의 Studio 2012 솔루션을 구현하기 위해 프로젝트를 가져온 후 프로젝트 ->{project-name} 속성으로갔습니다. 거기에서 빌드 이벤트으로 이동하십시오. 저자의 제안 코드 구문 나를 위해 처음 작동하지만로 변경하면 않았다 다음 않았다 :

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 

당신이 또한 프롬프트 cmd 만든 창문에서 명령을 실행하여 작동 확인할 수 있습니다.

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

+0

에 오신 것을 환영합니다! 귀하의 게시물을 약간 수정했습니다. – Brian

+0

브라이언에게 감사드립니다! - 위키/코드 구문 -highlighing을 포함하도록 형식화 된 것을 보았습니다. 이제는 향후 게시물에 어떻게 적용되는지 기억할 수 있습니다. – CSCProgrammer

0

내가이 많이보고되고, 그래서 내가 뭔가를 명확히 줄 알았는데 ..

그 명령을; (어떤 메시지 응답은 ==이 일하지 "관리자로 cmd를 실행"읽기) Microsoft.Search.Interop 어셈블리를 참조하는 프로젝트의 미리 빌드 단계에 속합니다.

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 

참고 : 당신은 싶지 않을 것이다 사용하기 이상적으로,이 DLL은 "빌드 이벤트"섹션은 "사전 빌드 이벤트 명령 줄"에 다음을 추가하여 프로젝트의 bin 폴더에 생성 될 것이다 명령 줄 및 경로에/무음 스위치는 64 비트 시스템에서 다른 또는 당신이 가지고있는 SDK의 버전에 따라, 그래서 나의 다음되면서됩니다

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