Programing

WatiN 오류로 어셈블리를로드 할 수 없습니다.

crosscheck 2020. 10. 23. 07:35
반응형

WatiN 오류로 어셈블리를로드 할 수 없습니다.


다음 WatiN 오류가 발생합니다.

처리되지 않은 예외 : System.IO.FileLoadException : 'Interop.SHDocVw, Version = 1.1.0.0, Culture = neutral, PublicKeyToken = db7cfd3acb5 ad44e'또는 해당 종속성 중 하나를 조립하거나 파일을로드 할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040) 파일 이름 : 'Interop.SHDocVw, 버전 = 1.1.0.0, Culture = neutral, PublicKeyToken = db

shDocvw.dll을 System32에서 bin 디렉토리로 복사했지만 여전히 동일한 문제가 발생합니다.


업데이트 :이 답변은 Nuget이 출시되기 전에 작성되었으며 Nuget을 사용하여 종속성을 관리하지 않는 경우에만 적용됩니다. Nuget을 사용하는 경우 @Nick Jones의 답변을 참조하십시오.

오늘이 문제가 발생했습니다. 최신 버전의 WatiN (2.0.10.928을 사용하고 있음)을 다운로드하고 WatiN에서 제공하는 서명 된 Interop.SHDocVw.dll을 참조해야합니다.

다음을 시도하십시오.

  1. Interop.SHDocVw.dll에 대한 다른 모든 참조 제거
  2. 솔루션을 마우스 오른쪽 버튼으로 클릭하고 '솔루션 정리'를 선택하십시오.
  3. WatiN에서 제공하는 Interop.SHDocVw.dll을 참조하십시오.
  4. 솔루션을 구축하십시오.

도움이 되었기를 바랍니다.

업데이트 : Nick Jones가 맞습니다. 이것은 해야 당신이 NuGet을 사용하는 경우 문제가되지 ....하지만 MvcContrib.Mvc3.TestHelper-CI를 사용할 때 나는이 메시지를 받고 있었다. 언뜻보기 에 '-ci'패키지가 갈 길인 것 같지만 두 가지 이유로 MvcContrib.WatiN 패키지를 사용하기로 결정했습니다.

1) "파일 또는 어셈블리를로드 할 수 없습니다."오류 메시지가 표시되지 않습니다.

2) MvcContrib.Mvc3.TestHelper-ci는 이전 버전 의 WatiN.Core.dll (1.3.0.4000)을 사용하고 있으며 MvcContrib.WatiN 패키지는 최신 버전 (2.0.0.99)을 사용하고 있습니다.


VS2010에서 NuGet을 사용하여 WatiN을 설치하고 참조한 경우 이미 올바른 참조가 있어야하므로 제거하고 다시 추가 할 필요가 없습니다. 그러나 Interop.SHDocVw 참조에서 "Embed Interop Types"설정을 False로 변경해야합니다.


참조 "Interop.SHDocVw.dll"의 속성을 확인하십시오. "Embed Interop Types"를 False로 변경합니다.

문제는 bin 폴더의 dll 파일을 복사하지 않는다는 것입니다. 그러나이 설정 후에는 제대로 작동합니다.

나는 같은 오류가 있었고 이제는 잘 작동합니다.

참고 URL : https://stackoverflow.com/questions/1457635/watin-error-could-not-load-assembly

반응형