2012-01-11 2 views
3

x64 응용 프로그램에서 사용해야하는 32 비트 lib가있는 어색한 상황이 있습니다. 이 문제를 해결하기 위해 32 비트와 64 비트 프로세스 간의 통신을 처리하는 COM 서버 응용 프로그램을 만들었습니다.COM 서버를 사용하여 side-by-side 오류가 발생했습니다. C++ 재배포 가능 파일이 설치되었습니다.

모든 것이 Windows 7, 버전 8.0.50727.867의 VS2005에 내장되어 있습니다. 내가 알아챈 한 가지는 내 버전이 SP1 재발행 버전 (8.0.50727.762)과 일치하지 않는다는 것입니다. 나는이 버전이 VS2005의 Vista 업데이트로 인한 것이라고 생각합니다. 이후 버전의 재배포 판을 찾을 수 없습니다.

그것은 내 dev 컴퓨터에서 작동하지만 내 Win7 x64 상자에는 없습니다. 따라서 오류는 다음과 같습니다.

"C : \ Program Files \ ScanScope \ Controller \ ACBarOmniServer.exe"에 대한 활성화 컨텍스트 생성이 실패했습니다. 종속 어셈블리 Microsoft.VC80.CRT, processorArchitecture = "x86", publicKeyToken = "1fc8b3b9a1e18e3b", type = "win32", version = "8.0.50727.6195"을 (를) 찾을 수 없습니다. 자세한 진단을 위해서는 sxstrace.exe를 사용하십시오.

이전에는 VS2005 C++ 재배포 가능 패키지를 설치했습니다. 나는 그것을 다시 설치하려고 시도했다. 운이 없다. 내 Winsxs 폴더를 통해 rummaged, 물론, 버전이 누락되었습니다.

나는 here에서 재배포 설치 프로그램을 실행하면 I 얻을 내 SXS 폴더에있는 CRT의 다음 버전 :

  • 8.0.50727.42
  • 8.0.50727.762
  • 8.0.50727.4053
  • 8.0 .50727.4940

물론 8.0.50727.6195이 필요합니다.

정적으로 링크 할 수있는 모든 항목 (예 :/MT, MFC에 대한 정적 링크, ATL에 대한 링크 없음)을 설정했지만 그 밖의 사항은 C 런타임의 동적 버전에 따라 다릅니다.

나는 운이없는 sxstrace를 사용했습니다. 추적을 시작하고, 프로그램을 시작하고, 오류를 얻고, 추적을 끝내고,이를 다른 파일로 구문 분석합니다. 파싱 ​​된 파일은 완전히 비어 있습니다.

주목할 흥미로운 점이 하나 있습니다. Win7 상자에서 redist 한 인스톨러를 실행하면 말 그대로 2 또는 2로 완료되고 사라집니다. 이제는 프로그램 추가/제거에 설치되어 있고 sxs 폴더에 폴더가 추가되는 것을 보았습니다. 그러나 이것은 이상하게 생각되었습니다.

누구든지이 도움을받은 경험이 있으면 많은 도움이 될 것입니다. 제가 빠뜨린 정보가 필요하시면 알려주세요.

답변

4

정확한 재배포 가능 패치 here을 찾았습니다.

이 업데이트는 VS2005 사용자에게 전송되었지만 일반 사용자는받지 않았습니다. 한숨, 잘 오.