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는 빌드 후 이벤트 창의 전체 텍스트를 하나의 호스트로 실행합니다. 나에게 유일한 옵션은 내가 특별히 좋아하지 않는 배치 펼쳐를 만드는 것입니다.
동일한 빌드 이벤트에서 수행 할 작업이있는 여러 속성 시트가있는 경우 다음을 수행하여 수행 할 수 있습니다.
%(Command)
echo foo
여기서는 %(Command)
명령의 이전 값으로 확장됩니다.
개인적으로 현재 상속 된 명령이없는 경우에도 모든 빌드 이벤트에 대해 작업을 수행합니다. 이렇게하면 나중에 속성 시트를 추가해도 문제가 발생하지 않습니다.
Visual Studio 2017에서 다음을 수행 할 수 있습니다.
<PostBuildEvent>
<Command>
copy $(TargetPath) $(SolutionDIr)\bin1
copy $(TargetPath) $(SolutionDIr)\bin2
</Command>
</PostBuildEvent>
womp가 제안한 접근 방식은 Visual Studio 2015/2017 (Windows)에서 작동하지만 Mac 용 Visual Studio (미리보기)에서는 작동하지 않는 첫 번째 명령 만 실행하는 것처럼 보입니다. Mac 및 Windows 버전의 Visual Studio에서 작동하는 유일한 방법은 2 개의 MSBuild 명령을 연결하는 것입니다.
<Target Name="AfterResolveReferences">
<Exec Command="path\MyFirstCommand.exe -parameters" />
</Target>
<Target Name="MySecondCommand" AfterTargets="AfterResolveReferences" >
<Exec Command="path\MySecondCommand.exe -parameters" />
</Target>
위의 예제는 "AfterResolveReferences"이벤트를 사용하지만 반드시 PostBuild 이벤트 작동합니다.
이 문제에 대한 좋은 해결책이 없습니다. 호출 아이디어로 인해 다른 펼쳐집니다. 오류 감지가 작동하지 않습니다. 'exit / b 1'을 FailMe.cmd에 넣습니다. 빌드 후 단계에서 'call FailMe.cmd'를 사용합니다. 빌드가 실패하지 않습니까? C # 프로젝트를 빌드하는 VS 2017을 사용하고 있습니다. 이제 'FailMe.cmd'로 시도해 시도합니다. 이제 빌드가 오류를보고합니다.
따라서 오류보고가 중요한 경우 단일 확장을 사용하는 것이 더 나을 수 있습니다.
배치 펼쳐에 "call"이라는 접두사를 붙이십시오. 따라서 배치 펼쳐 아래의 명령문도 배치 펼쳐서 호출을 반환합니다.
call Script1.cmd
call Script2.bat
참고 URL : https://stackoverflow.com/questions/1992536/visual-studio-multiple-post-build-commands
'IT' 카테고리의 다른 글
VS2015 프로젝트가 더 이상 디버그 모드에서 실행되지 않습니다. (0) | 2020.08.27 |
---|---|
Flask SQLAlchemy 쿼리, 열 이름 지정 (0) | 2020.08.27 |
왜 캐스팅을 피해야합니까? (0) | 2020.08.27 |
Matlab : 명령 줄에서 m- 파일 실행 (0) | 2020.08.27 |
jQuery DataTables : 제어 테이블 너비 (0) | 2020.08.27 |