블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

아래는 해결방법을 찾아다니다 데브피아에서 발견한 글입니다.

[증상]
OS : Win7 x64
프로그램 : VS2008 x86으로 제작

프로그램을 만들어서 배포를 했는데 팀원(Win7 x64)의 컴퓨터에서 side-by-side 에러 어쩌고 하면서 실행이 안됐습니다.

그래서 열심히 검색하다가 데브피아에서 아래와 같은 글을 발견했는데..

아래 글을 보고 생각하다보니 Win7 x64에서 자동업데이트를 해봤자 재배포 패키지가 x64만 깔린다는 생각이 들어서

Microsoft Visual C++ 2008 서비스 팩 1 재배포 가능 패키지 ATL 보안 업데이트 x86 버전을 받아서 직접 깔았더니 잘 실행 되네요.

아래 글이 도움 많이 됐습니다. =ㅅ=

Microsoft Visual C++ 2005 서비스 팩 1 재배포 가능 패키지 ATL 보안 업데이트
http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=766A6AF7-EC73-40FF-B072-9112BAB119C2

Microsoft Visual C++ 2008 재배포 가능 패키지 ATL 보안 업데이트
http://www.microsoft.com/downloads/ko-kr/details.aspx?familyid=8B29655E-9DA4-4B6B-9AC5-687CA0770F93&displaylang=ko

Microsoft Visual C++ 2008 서비스 팩 1 재배포 가능 패키지 ATL 보안 업데이트
http://www.microsoft.com/downloads/ko-kr/details.aspx?familyid=2051A0C1-C9B5-4B0A-A8F5-770A549FD78C&displaylang=ko





VC 2005,2008 ATL관련 보안업데트가 있습니다.

일단 설치를 보류하세요.

자동업데이트도 막으십시요.

 

 

전 2008을 사용중인데. 어제 VC관련 업데이트가 떴길래 무심코 업데이트를 했습니다.

그리고 오늘 수정건을 업체에 배포했는데 죽어도 실행이 안되길래

따로 테스트를 해보았습니다.

 

결론부터 말씀드리면 업데이트3건은

2005, 2008 재배포 패키지(sp1일경우는 따로..) 관련

vs 2008관련

3가지가 설치되는데요.

 

이게 배포시 기본 2008하고 sp1이 다르듯이 아예 재배포 패키지가 다릅니다.

즉 dll버젼이 다르죠.

 

2008 기본 버젼이 9.0.21022.8이고

sp1이 9.0.30729.1

이번 업데이트로 (sp1) 9.0.30729.4148

 

dll버젼이 달라서 재배포 패키지를 최신버젼으로 다시 설치해야됩니다.

 

여기서 젤큰 문제 세가지는

1. 2005,2008 재배포 관련 설치는 추가/제거에 존재하는데 삭제해도 똑같다.

-> vs 2008 sp1관련 업데이트 삭제가 없다.

 

2. 윈도우 복원을 했는데요. 똑같이 문제가 발생하더란 겁니다.

-> 설치된 목록에도 없고 업데이트 해달라고 떡하니 뜨는데도 말이죠;

 

3. 2005부터 재배포 패키지로 바뀌었지만 설치된 폴더에서 필요한 몇개의 파일만 같이 포함하면

문제없었는데 이번엔 아예 그게 안먹힙니다. 제결론으로 그 이유는

 

manifest 명시를 보면

 

기존 sp1을 보면(mfc사용시)

 

 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.MFC" version="9.0.30729.1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>

 

9.0.30729.1 버젼의 crt와 mfc라이브러만 명시되어 있지만

 

이번 업데이트로는

  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.4148" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.MFC" version="9.0.30729.4148" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>

 

9.0.30729.1과 9.0.30729.4148 CRT를 둘다 필요로 합니다. 고로 9.0.30729.4148 dll만 포함하면 실행이 안되겠죠.

 

결론.

아직 정확한 문서를 못봐서 atl관련 뭐가 업데이트 됐는진 모르지만 설치하지마세요 ㅡ.ㅡ;

이미 설치하셨다면 업데이트된 pc에서 컴파일한 파일 배포시는 재배포 패키지를 바꿔야합니다.

아예 모든 재배포 패키지를 최신꺼로 바꿔야합니다;

 

 

sp1용 재배포 패키지 주소 올려드립니다. 한글로는 아직검색 안되는듯 하네요.

Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update

http://www.microsoft.com/downloads/details.aspx?familyid=766A6AF7-EC73-40FF-B072-9112BAB119C2&displaylang=en

 

Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Security Update

http://www.microsoft.com/downloads/details.aspx?familyid=2051A0C1-C9B5-4B0A-A8F5-770A549FD78C&displaylang=en

 

 

제가 겪은 일을 일단 빨리 올려봅니다.

댓글로 잘못된 부분은 알려주세요.

업데이트된 내용도 올려주심 감사.


출처 :  http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8351&ref=8351

반응형
Posted by blueasa
, |