파티에 조금 늦었지만 여기 내 아이디어가 있습니다.
나는 이미 존재하는 코드베이스를 수정하는 것과 같은 것을 포함하지 않는 세 번째 가능성과 함께 갈 것입니다. 출력 디렉토리 어딘가에 바이너리 (실제 게임 .exe 및 컴파일 된 관련 .dll)를 커밋 (및 복사)하는 경우 (예 : 빌드 후 스크립트)에 효과적입니다. 앞으로 Visual Studio 2010 및 XNA Game Studio 4.0에 대해 이야기하고 있다고 가정합니다 (이 절차는 다른 버전과 매우 유사하므로 숫자를 바꿔야합니다)
따라서 아이디어는 다음 단계를 사용하여 .sln 솔루션이있는 프로젝트 루트에 스크립트 (.cmd)를 작성하는 것입니다.
"Visual Studio 2010 명령 프롬프트"를 호출하십시오.
"C : \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat"x86 호출
이는 스크립트가 XNA 라이브러리와 필요한 모든 도구 및 바이너리를 찾을 수 있도록하기위한 것입니다.
컨텐츠 프로젝트 (.contentproj)에서 MSBuild 태스크를 호출하십시오.
msbuild / property : XNAContentPipelineTargetPlatform = Windows /property:XNAContentPipelineTargetProfile=mygame.content/projectfile.contentproj에 도달
지정된 다른 플랫폼 / 프로필로 속성을 수정할 수 있습니다. 한 번에 더 많은 플랫폼 (Windows Phone, Xbox 360 또는 Windows)을위한 컨텐츠를 구축 할 수도 있습니다. 프로필은 다음과 같습니다. Reach 또는 HiDef (http://msdn.microsoft.com/en-us/library/ff604995.aspx)
바이너리 + 실제 게임이 저장소에 저장된 폴더에 출력을 재귀 적으로 복사하십시오.
xcopy / d / y / i / e bin \ x86 \ Debug \ Content * .. \ game_output \ Content
플래그에 대한 자세한 내용은 명령 프롬프트에서 호출 할 수 있습니다 xcopy /?
. 중요한 것은 다음과 같습니다. /d
, 수정 된 파일 만 복사-많은 자산이있는 경우 기존 및 수정되지 않은 파일을 반복해서 복사하지 않는 것이 유용합니다. /y
기존 파일을 자동으로 덮어 써서 최신 버전으로 업데이트 할 수 있습니다. 내가 아는 한 xcopy
노멀 copy
이 재귀 적으로 폴더를 복사 할 수 없기 때문에 사용 했으며 아마도 폴더와 하위 폴더의 내용을 구성하고있을 것입니다. 또한 정상보다 좋습니다 copy
(많은 다른 플래그).
pause
스크립트가 사용자 입력을 기다리도록 호출 하십시오. 빌드가 양호하고 오류가 없는지 확인하는 데 유용합니다.
이제 컨텐츠 파일을 수정하는 아티스트 (또는 누구나)는 .cmd 스크립트를 두 번 클릭하기 만하면 새 컨텐츠가 빌드되고 커미트 된 아티팩트를 테스트 할 준비가 된 출력 디렉토리에 복사됩니다.
그러나 David의 포스트의 첫 번째 요점으로 넘어 가야 할 작은 문제가 있습니다. 아티스트가 파일을 추가 / 제거 / 이동하여 컨텐츠 프로젝트를 수정하려면 파일을 열어야합니다. Visual Studio에서 프로젝트 (또는 수동으로 프로젝트 파일을 편집하면 누구나 할 수 있습니다). 내가 말했듯이, 이것은 저장소에서 새 파일을 커밋 할 수 있기 때문에 작은 문제입니다. 코더는 코드를 처리하기 위해 파일을 처리 할 때 파일을 콘텐츠 프로젝트에 포함시킵니다.
이 아이디어에서 Shawn Hargreaveas는 명령 줄에서 msbuild 및 콘텐츠 프로젝트 작성에 대한 내용을 게시했습니다. http://blogs.msdn.com/b/shawnhar/archive/2006/11/07/build-it-ahead-of-time .aspx 그의 해결책은 새 파일을 만드는 것이었지만 기존 프로젝트 파일을 직접 사용하는 것이 더 쉽고 유지 관리가 쉽다고 생각합니다.
추신 : 긴 게시물 xD에 대해 죄송합니다