2010-08-22 4 views
2

제가 어떻게 이렇게 나는이처럼 보이는 빌드 후 이벤트 만든 빌드 후 파일들을 이동 배치 파일을 실행하기 위해 노력하고있어 :VS2008 빌드 후 이벤트 배치 파일

$(ProjectDir)CopyPlugins.bat $(ConfigurationName) 

문제는 비주얼 스튜디오가 이벤트를 실행하려고 할 때이 오류가 있다는 것입니다 그 과정 exited with code 9009 문제는 VS는 따옴표로 전체 라인을 박았가 실행 명령이되도록 것으로 보인다

:

"C:\Users\kdmurray\Visual Studio 2008\Projects\Runner\Runner\CopyPlugins.bat Debug" 

물론 내가 의도 한 바는 아주 미묘한 차이였습니다. 닫는 따옴표의 위치가 바뀌 었습니다.

"C:\Users\kdmurray\Visual Studio 2008\Projects\Runner\Runner\CopyPlugins.bat" Debug 

VS가 제공하는 다소 성가신 "도움말"이 주위에 있습니까?

답변

6

다른 인수로 첫 번째 파일을 실행하는 배치 파일 두 개를 더 만듭니다.

CopyPlugins-debug.bat Call CopyPlugins.bat debug

CopyPlugins-release.bat Call CopyPlugins.bat release

그리고 VS 빌드 후 이벤트 "$(ProjectDir)CopyPlugins-$(ConfigurationName).bat"

+0

우리가 할 수있는 최선의 방법입니다 ... 자동 인용 부호 기능을 끄려면 IDE 옵션을 사용하는 것이 좋습니다. 우리는 개발자이며, 우리가 언제 필요하고 필요 없는지 파악하기에 충분히 똑똑합니다. – kdmurray

0

복잡한 빌드 후 복사를 시도하는 경우 MSBuild Community Tasks 프로젝트를 살펴볼 가치가 있습니다. 그것은 작업을 수행하는 더 깨끗한 방법일지도 모르는 RoboCopy.exe를 랩하는 작업을 가지고 있습니다.

일반적으로 나는 비어있는 "빌드"프로젝트를 만들고 전/후 빌드 단계를 수행하지만 아무것도 수행하지 않습니다. 그것은 아주 잘 작동합니다.

+0

빌드를 마친 후 몇 개의 어셈블리를 복사한다고 생각하지 않았습니다. – kdmurray

0

난 당신이 단지 배치 스크립트의 경로를 따옴표 필요가 있다고 생각, 당신의 빌드 후 이벤트가 있어야한다 즉 :

"$(ProjectDir)CopyPlugins.bat" $(ConfigurationName) 

이것은 공간의 디렉토리에있는 C# 프로젝트를 위해 나를 위해 일한 그 길에.

+0

예, 시도해 보았습니다. 불행히도 여기서는 효과가 없었습니다. 결국 VS2008을 실행하려고합니다. "C : \ <배치 경로> \ CopyPlugins.bat"디버그 " 아무에게도 도움이되지 않는 것은 어느 것입니다. – kdmurray

+0

어떤 프로젝트 유형으로 작업하고 있습니까? 기음#? C++? –

+0

C# -하지만 빌드 이벤트에있어 대부분의 프로젝트 유형에서 동일해야합니다. – kdmurray

0

그냥 이런 식으로 입력

d:\foo\bar\myMainScript.bat "$(MY_VSPROPS_MACRO_VAR_00)" 

이것은 나를 위해 일했습니다. 배치 파일을 호출하는 CALL 함수를 사용하지 마십시오 !!!.

모든 매개 변수를 기본 배치 파일에 전달하고 내부 처리합니다. 다른 일괄 처리 또는 호출 할 일괄 처리 세트가있는 경우 빌드 후 이벤트에서 호출하지 말고 주 일괄 처리 파일에서 다른 일괄 처리 파일을 호출하십시오.