[c#] Visual Studio : 여러 빌드 후 명령?

Visual Studio 2008을 사용하면 명령을 선언하고 프로젝트의 빌드 후 이벤트에 연결할 수 있습니다. 많은 개발자와 마찬가지로 정기적으로 파일을 응용 프로그램 출력 디렉토리에 xcopy하는 데 사용합니다.

단일 프로젝트 내에서 두 개의 다른 위치에서 두 개의 다른 대상으로 파일을 xcopy해야하는 프로젝트를 진행하고 있습니다. 즉, 동일한 빌드 후 이벤트에서 두 개의 다른 xcopy 명령을 호출해야합니다. 빌드 후 이벤트는 단일 명령 만 사용하며 여러 명령을 호출해야하는 경우 명령을 * .bat 파일에 넣고 빌드 후 이벤트에서 호출해야합니다.

이것이 맞습니까, 아니면 빌드 후 이벤트에서 두 개의 명령을 호출하는 더 간단한 방법이 있습니까? 도움을 주셔서 미리 감사드립니다.



답변

빌드 후 명령을 원하는만큼 입력 할 수 있습니다. 줄 바꿈으로 구분하십시오.

다음은 내 프로젝트 중 하나의 예입니다.

빌드 후 이벤트 명령 줄


답변

중요 : 배치 파일을 실행할 때 다음 행을 실행하려면 “call”문을 사용해야합니다. “call”을 사용하지 않으면 실행이 .bat로 이동하고 다음 행으로 돌아 가지 않습니다. DOS 프롬프트와 동일합니다.

예 :

call MyBatch1.bat
call MyBatch2.bat


답변

또 다른 옵션이 있습니다 &&. 명령을 . 예

copy $(TargetPath) d:\folder1 && copy $(TargetPath) d:\folder2

이것은 줄 바꿈으로 분리하는 것과 정확히 동일하지 않습니다 &&. 이전 명령이 실패하면 다음 명령이 실행되지 않습니다.

줄 바꿈으로 구분하는 것이 읽기 쉽기 때문에 선호해야합니다. 그러나 &&유용 할 때 적어도 한 가지 경우를 알고 있습니다. 속성 시트를 사용하여 서로 다른 시스템에서 서로 다른 빌드 후 단계를 갖는 시나리오입니다. VS 2008에서는 속성 시트에서 PostBuildStep을 직접 설정할 수 없지만 명령으로 사용자 매크로를 추가하고 기본 프로젝트 설정에서 호출 할 수 있습니다. 매크로는 한 줄이므로 &&여러 명령을 사용할 수 있습니다 .


답변

각 명령은 별도의 줄에 있어야합니다. 그러나 내가 찾은 것은 이러한 명령 중 하나를 실행하는 동안 오류가 발생하면 전체 빌드 후 전체가 실패하므로 디버깅을 위해 한 번에 하나씩 각 빌드 후 명령을 시도해야한다는 것입니다.


답변

& 또는 && 또는;로 명령 분리 VS2017에서는 작동하지 않습니다. 그런 간단한 기능은 VS2017에서 사용할 수 없다는 것을 믿을 수 없습니다. Visual Studio는 빌드 후 이벤트 창의 전체 텍스트를 하나의 문자열로 실행하려고합니다. 나에게 유일한 옵션은 내가 특별히 좋아하지 않는 배치 스크립트를 만드는 것입니다.


답변

womp대답에 추가 :

동일한 빌드 이벤트에서 수행 할 작업이있는 여러 속성 시트가있는 경우 다음을 수행하여 명령을 연결할 수 있습니다.

%(Command)
echo foo

여기서는 %(Command)명령의 이전 값으로 확장됩니다.

개인적으로 현재 상속 된 명령이없는 경우에도 모든 빌드 이벤트에 대해이 작업을 수행합니다. 이렇게하면 나중에 속성 시트를 추가해도 문제가 발생하지 않기 때문입니다.


답변

Visual Studio 2017에서 다음을 수행 할 수 있습니다.

<PostBuildEvent>
    <Command>
        copy $(TargetPath) $(SolutionDIr)\bin1
        copy $(TargetPath) $(SolutionDIr)\bin2
    </Command>
</PostBuildEvent>