2013-10-18 1 views
4

'필요'단계를 사용자 지정 빌드를 실행하는 방법 (예 : $ (있는 TargetPath)) 디스크의 다른 위치에 C++ 프로젝트의 .비주얼 스튜디오 : 경우 내장 된 DLL을 복사 할 <strong>사용자 정의 단계</strong> 빌드 사용하고

내가 대상 DLL 경로에 사용자 지정 빌드 단계의 Output 설정 한 및 Additional Dependencies$(TargetPath)에 - 파일 I 소스 DLL이 새로운 경우 VS는 만하는 단계를 실행할 수 있으리라는 희망에서, 복사 해요 대상 DLL보다.

그러나 프로젝트를 빌드 할 때마다 VS는 사용자 정의 빌드 단계를 실행하므로 복사를 수행 할 필요가 없다는 것을 알 수 있습니다 (소스 DLL $ (TargetPath)는 변경되지 않았습니다) . 단계를 잘못 구성해야합니다.

내가 원하는 동작을 제공하는 설정은 무엇입니까? (예 : VS는 프로젝트를 빌드하고 사용자 정의 빌드 단계가 성공적이었던 경우이를 VS로 간주합니다)

VS 출력 창에서 Visual Studio에서 빌드 단계를 트리거하는 파일로 vcxproj를 사용하고있는 것 같습니다. 나는 그것이 $ (있는 TargetPath)를 사용하려면 :

Input file "MyProject.vcxproj" is newer than output file "c:\custom\build\step\copies\the\dll\here.dll". 

(PS : 내가 처음에 포스트 단계를 빌드를 사용했다, 추가해야하지만이 실패 할 경우, VS뿐만 성공적으로 구축 프로젝트를 간주하고 다시 빌드 할 때 다시 실행하지 않음)

답변

0

내가 원하는 것은 증분 빌드입니다. http://msdn.microsoft.com/en-us/library/ms171483.aspx

기본 사항 당신이 출력하고 출력 새/같은 나이 인 경우 대상을 건너 뛸 수 있도록 MSBuild에서이 입력을 매핑 할 수 있습니다 할 대상에 입력을 제공 할 필요가 있습니다 : 여기

그것에 빠른 하우투입니다 입력으로

+1

난 그렇게 생각하지 않습니다. Visual Studio 프로젝트에있어 빌드 대상이 이미 빌드 된 DLL로 정의되어 있습니다. – mackenir

0

지정한 출력 파일의 타임 스탬프가 복사 명령 이후에 업데이트되었는지 확인하십시오 (유닉스에서는 touch 명령을 사용합니다).

당신은 명령 줄에서 이것을 사용할 수 있습니다

cd c:\custom\build\step\copies\the\dll <br> 
copy /b /y YOUR_SOURCE_DIRECTORY/here.dll .<br> 
copy /b /y here.dll+,, 
관련 문제