2010-01-26 4 views
8

Visual Studio의 빌드 명령을 가로채는 다른 빌드 시스템을 사용하여 빌드를 수행하는 VS 추가 기능을 작성했습니다. VS에서 마우스를 클릭 할 수 있도록 올바른 형식으로 오류를 표시하는 빌드가 있지만 완전히 완벽한 통합을 위해 남아있는 한 단계는 VS의 "실행"또는 "디버그"명령이 생각하지 않는 것에서이를 방지하는 것입니다 프로젝트가 만들어 졌을 때 (물론 그럴 때) 누가 VS를 프로젝트가 구축되었다고 생각하도록 속이는 방법을 알 수 있습니까?빌드가 최신인지 확인하기 위해 Visual Studio에서 사용하는 것은 무엇입니까?

+0

touch 유틸리티를 사용하여 다음 명령을 실행하십시오 http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out 최신이지만 아무것도 변경되지 않은 –

답변

5

곧 MSBuild/Visual Studio는 특정 프로젝트의 구성에서 정의 된 대상의 출력 내용을 확인합니다. 다음으로, 목표 출력으로 지정된 파일의 시간 소인을 특정 대상에 대한 입력으로 지정된 모든 파일의 시간 소인과 비교합니다. 입력이 출력보다 최신 인 경우 출력을 재생성하도록 요청합니다 (소스 코드를 다시 컴파일하거나 오브젝트 파일을 다시 링크하는 등)

프로젝트를 작성한 것으로 생각할 때 VS를 속일 수 있습니다. ? 입력 파일의

업데이트 타임 스탬프, 링커와 관심의 다른 파일에 대한 입력으로 사용 .obj 같은 즉, 소스 파일 (.cpp, .cs) 또는 바이너리 파일. 때로는

내가 수동으로 여기 GnuWIn32

에서
touch myfile.obj 
2

Visual Studio는 원본 파일의 날짜/시간 스탬프를 사용합니다. 원본 파일이 bin\debug 또는 bin\release에있는 컴파일 된 이진 파일 인 경우 Visual Studio에서 솔루션을 다시 작성합니다.

경우에 따라 재구성 프로세스가 실패 할 수도 있습니다. 빠른 해결 방법은 솔루션 의 솔루션 bin\debug 또는 bin\release 폴더 내에있는 중간 디버그 파일을 삭제하는 것입니다. 그런 다음 솔루션에서 빌드를 실행하십시오.

호프가 도움이 되었으면 안녕하세요, 탐.

관련 문제