언리얼 강의 갔더니 'UE4 개발할 때 프로젝트 파일이나 솔루션 파일을 Source Control에 올리지 않는다' 라는 내용이 있었다. 멀티 플랫폼 환경에서 빌드하기 위해서 각각 빌드 환경을 유지 보수하기 힘드니 코드들만 넣어두면 알아서 빌드되도록 자동화한 것 같다. (sln 에서 지워도 좀비처럼 다시 살아나니 파일을 지우거나 .h_ .cpp_ 같은 식으로 바꾸라고 ... )
엔진 빌드는 'GenerateProjectFiles.bat' 파일을 각자 작업환경에서 실행하면 되는데 UE4 로 만든 프로젝트에서는 위 정책을 어떻게 따라야하는지 검색해도 못 찾겠더라는...
이미 sln 이 있는 경우에는 Visual Studio 에서 해당 프로젝트를 열어서 'Refresh Projects' 를 하면 자동 업데이트는 되는 것 같긴 한데 sln 과 vcxproj 가 Source Control 에 올라가 있어야 해서 이건 아닌 것 같다고 판단.
sln 과 vcxproj 파일을 지우고 에디터에서 코드를 추가했더니 sln 과 vcxproj 가 새로 생성되는 것을 확인했다. 로그창을 봤더니 UnrealBuildTool 이라는 애가 그 역활을 해주나 보다.
"{Unreal Engine Root}/{Version}/Engine/Binaries/DotNET/UnrealBuildTool.exe" -projectfiles -project="{Project File Fullpath}" -game -rocket -progress
-game -rocket -progress 옵션이 뭐하는지는 모르겠지만 일단 위와같이 하니 sln 과 vcxporj 파일이 생성된다. 위 명령어를 다듬어서 bat 파일 형태로 Source Control 에 올리고 작업하면 될 것 같다.
언리얼 폴더 뒤져보니 {Unreal Engine Root}/{version}/Engine/Build/BatchFiles 에 RocketGenerateProjectFiles.bat 파일이 있네. 해당 파일로 uproject 파일을 drag & drop 하면 되는 듯...
(2014.12.18) 배치 파일 이용해서 만든 sln 의 경우 빌드가 안되는 경우도 있는데 언리얼 에디터에서 '파일' > 'Visual Studio 프로젝트 새로고침'을 클릭해서 sln 새로 만들면 빌드가 된다.
(2015.04.06) uproject 파일을 마우스 오른쪽 클릭하면 "Generate Visual Studio project files" 라는 메뉴가 생김