패턴 Visual Studio에서 Build가 너무 오래 걸리는 경우에 대한 우수 사례




비주얼 코드 자바 스크립트 (5)

MSBuild를 사용하여 전용 빌드 머신을 고려할 수 있습니다. 거기에서 컴파일하는 동안 계속 작업 할 수 있습니다. 하지만 네트워킹 문제를 제기 할 때 더 복잡해집니다.

Visual Studio에서 보통 크기의 솔루션을 구축하는데 약 5 분이 소요됩니다 (FxCop 및 다른 게시 빌드 단계로 인해 오래 걸립니다). 내 문제는 Visual Studio가 빌드하는 동안 응답을 중지한다는 것입니다. VS가 거의 중단되면 작업을 계속할 수 없습니다. 두 개의 VS 인스턴스를 사용하여 빌드를 시도했으나 지금은 계속 충돌합니다.

내 질문은, 어떻게 시간을 낭비하지 않는 비주얼 스튜디오는 크고 / 보통 프로젝트를 구축 찾고 있습니다. 이에 대한 모범 사례가 있습니까?


코드를 컴파일하는 데 필요한 클래스를 스터 빙하여 다른 프로젝트에 클래스를 만들 수 있습니다. 이렇게하면 새 코드를 테스트하고 문서화 할 수 있습니다. 이 후, 당신은 단지 그것을 실제 프로젝트에 포함시키고 "진짜를 위해"컴파일합니다. 그것이 컴파일 될 때까지, 당신은 성공적으로 컴파일 할 95 %이기 때문에 당신은 이미 프로젝트의 또 다른 스 니펫에서 작업하고 있습니다. 또는 컴파일 할 때 단위 테스트를 작성할 수도 있습니다.


둘 이상의 컴퓨터가 있거나이 프로그램을 직장의 다른 친구에게 설치 한 경우 Incredibuild를 사용하십시오. 그것은 설치하고 사용하기 쉽습니다. 컴파일 속도가 빨라집니다.

그것은 또한 일반적으로 하나의 프로젝트에 대해 하나의 코어를 사용하지만 incredibuild는 각 .cpp 파일에 대해 병렬로 만들어 멀티 코어 CPU의 bacause에 좋습니다 ...

해보고 .. .. :)


  1. 솔루션을 빌드 할 때마다 정적 코드 분석을 실행할 필요가 없습니다.
  2. 병합하여 프로젝트의 수를 줄이면 많은 도움이 될 수도 있습니다.

다른 포스트 빌드 작업을 수행하려면 무엇을해야합니까?


어제 배운 우수한 MSBuild 팁 2 개 ...

/ m : n 스위치를 사용하여 병렬로 작업을 실행할 수 있습니다. 여기서 n은 사용할 프로세서 수입니다. MSBuild 작업에서 BuildInParallel 을 설정하기 만하면 됩니다.

다른 트릭은 실행할 여러 개의 <exec /> 작업이있는 경우 각 명령 사이에 파이프 문자를 사용하여 <exec command = "sleep 10 | sleep 10 | sleep 20"/>을 호출하여 실제로 실행할 수 있습니다. . 보다 실제적인 예 :

<CreateItem Include="server1;server2;server3;server2">
  <Output ItemName="IISServer" TaskParameter="Include"/>
</CreateItem>
<CreateProperty Value="@(IISServer->'iisreset.exe /start %(Identity)', '|')">
  <Output TaskParameter="Value" PropertyName="IISServerStartAll" />
</CreateProperty>
<exec command="$(IISServerStartAll)" />






language-agnostic