요즘 제작 하고 있는 스터디 겸 포폴용 게임엔진도 슬슬 틀을 잡아가고 있고, 현재 캐릭터 애니메이션쪽으로 작업을 하고 있습니다. 그러던 중 같이 작업하던 해피버드 동생님하가 " 형~ 우리도 VS2010으로 작업해보자 " 해서 이왕 VS2010 지원하는거 버전별로 솔루션을 만들어보자. 해서 버전별 솔루션 지원을 해봤습니다. ( 기존에는 VS2005로 작업 중 )

Visual Studio 2010의 위엄

VS2008까지는 별문제점 없이 잘 빌드되더군요. 문제는 2010입니다. 문제중 하나가 엔진에서 XML 파서로 TinyXML을 쓰는데, 2010을 지원 못하더군요. 그래서 소스코드를 받아 2010으로 재빌드 후 Define 매크로를 통해 2010에서 빌드할때는 2010용 LIb 파일을 링크 하도록 했습니다.

/*
    1400 : Visual C++ 2005
    1500 : Visual C++ 2008
    1600 : Visual C++ 2010
*/
#if _MSC_VER > 1500
	#ifdef _DEBUG
	#pragma comment(lib, "TinyXMLStaticMDd_v10.lib")		
	#else
	#pragma comment(lib, "TinyXMLStaticMD_v10.lib")		
	#endif
#else
	#ifdef _DEBUG
	#pragma comment(lib, "TinyXMLStaticMDd.lib")		
	#else
	#pragma comment(lib, "TinyXMLStaticMD.lib")		
	#endif
#endif
그리고 생기는 또 하나의 문제!!
바로 .Net Framework 버전인데요. 이전 글에서도 써놨다 시피 제작 중인 엔진 실행 부분을 툴을 염두해두고 C#으로 제작하였습니다. 그렇기 때문에 중간에 C++과 C#을 중계해주는 공용 언어(CLR)로 제작된 코드가 있는데요. 2010 에서 대상 .Net Framework 버전을 무조건 4.0으로 잡더군요. 그래서 기존 2.0 으로 제작된 툴 부분하고 충돌이 났습니다.

그냥 4.0으로 통일하면 되잖냐~ 하겠지만, 그렇게 되면 C# 프로젝트의 셋팅 파일들이(cs) 변경되기때문에 하위 버전의 VS에서 사용할수 없게됩니다. 그래서 요로콩 조로콩 머리를 굴려봐서 변경되는 셋팅 파일들을 2010용으로 따로 하나 만들어두고 VS2010에서는 4.0 파일을 읽어들이고, 그 이하 버전에서는 기존 셋팅 파일을 불러 들이게해서 해결을 봤습니다.  대신 2010으로 툴 작업을 할때 .Net 4.0 Framework 에 추가된 기능들을 쓰면 안되겠죠.

그렇게 일단락 마무리를 하고, 2005 / 2008 / 2010 버전별 솔루션을 만들어봤습니다.

프로젝트 이름은 부끄러워서 가렸습니다.


  1. BlogIcon 무바㏇ 2010.07.02 17:35 신고

    아웅~ 저도 어렸을 때 게임개발을 정말 하고 싶었는데. 어떻게 보면 되게 부럽다는.~

    • BlogIcon 친절한티스 2010.07.05 11:01 신고

      게임 개발은 혼자서 취미로도 할수 있어요.
      지금도 늦지 않았어요~ 도전해보세요!! 인생은 도전!!

  2. BlogIcon 무바㏇ 2010.07.05 19:50 신고

    혈기왕성해서 좋군요~ ㅎ

  3. BlogIcon CreamNuts 2010.11.09 22:26

    안녕하세요. 검색하다 들리게 됐습니다. 버전별 솔루션 파일을 만드는법을 알고싶어요...ㄷㄷ
    수동으로 작업해서 만들수도 있지만 매번수정할때마다 할려니까 곤욕이네요.. 혹 쉬운방법이 있나요.?

    • BlogIcon 친절한티스 2010.11.10 08:47 신고

      일단은 솔루션 파일과 솔루션 파일에서 사용하는 프로젝트 파일의 사본을 만듭니다. 그리고 사본 솔루션 파일을 메모장등의 에디터로 열어서 내용 안에 있는 프로젝트 파일명을 위에 만든 사본 프로젝트 파일로 이름을 변경 해줍니다.

      그리고 사본 솔루션 파일을 VS2008로 여시면 자동으로 솔루션과 프로젝트 파일이 2008용으로 변환됩니다( 2005 -> 2008 ).

      끝.

      간단하죠?

      다만 2010은 조금 골치아픕니다. 변환되는 부분이 많아서 자칫 충돌과 오류가 만발할 수 있으니 이쪽은 조금 주의 하셔야 합니다.

+ Recent posts