티스토리 뷰

VS2012 가 나왔지만, 실사엔 아직 먼 이야기니 그 동안 나같이 고민할 사람들을 위해 기록을 남겨봅니다.


VS2008만 쓰다 간만에 VS2010 을 설치했다.

열심히 업데이트 받다가, VS2010 SP1 도 설치해버렸다.

그런데... 플랫폼 도구 집합으로 Windows7.1SDK 를 쓰는 경우 컴파일이 안된다.

그래서 열심히 받았다. Windows7.1SDK 를 x64 버전(GRMSDKX_EN_DVD.iso)으로 설치하려 하나... 설치가 계속 안된다...

찾아보니, 나만 겪었던 게 아니였다(참고 http://celdee.tistory.com/765). 

MS는 자기들 끼리 만든 것도 요렇게 비극을 만들어버리다니. 참 MS스럽다고 생각했지만, 어쨌든 빌드를 해봐야 했으니...


찾아보니, VS2010 Runtime(x86, x64)를 지우라는데, 아무리 지워도 설치 안되더라...

설치 로그를 보면, 설치가 된다고 쭉 설치하다가 Product Family 가 없다고 한다.


이리저리 찾아보다. 나름 자세히 설명한 사이트(http://notepad.patheticcockroach.com/1666/installing-visual-c-2010-and-windows-sdk-for-windows-7-offline-installer-and-installation-troubleshooting/)를 발견했고, 잘 될 것을 기대하였다.


해야 할 작업 1. 레지스트리 권한 변경

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18

요 키의 소유자를 현재 윈도우에 로그인한 계정으로 하위 노드까지 몽땅 바꿔버렸다. 원래는 SYSTEM 계정으로 되어 있다.


이런 저런 작업 후, 다시 설치해도 똑같은 오류(Product Family가 없다)가 나온다. -__-;;;

하는 수 없이... 노가다 작업을 하기로 했다...


해야 할 작업 2. Windows7.1SDK 이미지의 설치파일을 각개 설치한다.

Windows7.1SDK 이미지를 마운트 하고, \SETUP 폴더에 가보면 아래와 같이 여러 설치 파일이 있다.


MTPack

WinSDKApplicationVerifier

WinSDKApplicationVerifier_amd64

WinSDKApplicationVerifier_ia64

WinSDKAppverRedist_amd64

WinSDKBuild_amd64

WinSDKDebugToolsRedist_amd64

WinSDKDebuggingTools

WinSDKDebuggingTools_amd64

WinSDKDebuggingTools_ia64

WinSDKHelp_amd64

WinSDKIntellisenseNFX

WinSDKIntellisenseRefAssys_amd64

WinSDKInterop_amd64

WinSDKNetFx40Tools_amd64

WinSDKNetFxTools_amd64

WinSDKPerformanceToolKit

WinSDKPerformanceToolKit_amd64

WinSDKPerformanceToolKit_ia64

WinSDKRedist_amd64

WinSDKSamples_amd64

WinSDKTools_amd64

WinSDKWin32Tools_amd64

WinSDK_amd64

vc_stdamd64

vc_stdia64

vc_stdx86


붉고 굵은 글씨는 반드시 설치할 것, 굵은 파란 글씨는 안해도 되는 것, 빨간 글씨는 해보면 좋을 것들? 왜냐하면 VS2010 SP1 을 곧 설치할 것이기 때문에... 나머지는 알아서...


해야 할 작업 3. Windows SDK 레지스트리 수정

   HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows 아래

    CurrentInstallFolder, CurrentVersion 을 하위 노드 중에 v7.1의 InstallationFolder, ProductVersion 값으로 변경


   HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v7.1

    아래 잘못된 경로 다 수정(C:\ 로 시작해야 하는데 D:\ 로 시작하는 등에...)


   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows 아래

    CurrentInstallFolder, CurrentVersion 을 하위 노드 중에 v7.1의 InstallationFolder, ProductVersion 값으로 변경


   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1

    아래 잘못된 경로 다 수정

    

해야 할 작업 4. Windows7.1SDK 내 파일 추출 후 복사

 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets 에 Windows7.1SDK 폴더 생성


  아래 파일은 Windows7.1SDK 이미지의 \Setup\WinSDK_amd64\cab1.cab 에 존재하는데(cab 파일은, 반디집으로 풀자), 

  FL_Microsoft.Cpp.Win32.Windows7.1SDK.props_cn_ln

  FL_Microsoft.Cpp.Win32.Windows7.1SDK.targets_cn_ln


  이런 파일명은... 다음과 같이 이름을 바꾸어서 복사한다.

  Microsoft.Cpp.Win32.Windows7.1SDK.prop 

  Microsoft.Cpp.Win32.Windows7.1SDK.targets


 유사하게...

 FL_Microsoft.Cpp.x64.Windows7.1SDK.props_cn_ln

 FL_Microsoft.Cpp.x64.Windows7.1SDK.targets_cn_ln

 파일도 유사하게 앞에 FL_ , 뒤에 _cn_In 을 지우고 이름을 바꿉니다.

 그리고, C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win64\PlatformToolsets 에 Windows7.1SDK 폴더 생성해서 복사


 아이테니움을 쓰시면 이정도는 알아서 하시겠지요?



다 귀찮다면,

윈도우를 다시 설치하고 ㅎㅎ;;;

다음과 같이 설치하는게 깨끗하게 설치하는 방법이 아닐까 싶네요.


Windows 7.1 SDK -> VS 2010 설치 -> VS 2010 SP1 설치 -> VS 2010 SP1 + Windows 7.1 SDK 설치


일단 이렇게 하면 컴파일은 되더라... ^^;;;

댓글