다음을 통해 공유


MSBuild 서버

MSBuild Server는 Windows, Linux 또는 Mac .NET Core 빌드 환경의 .NET CLI에서 명령을 사용할 dotnet build 때 호출되는 .NET Core 빌드의 성능을 향상시킵니다. 빌드가 요청될 때마다 빌드 프로세스를 시작하는 대신 대부분의 컨텍스트가 장기 실행 프로세스에 캐시되므로 다음 빌드에서 다시 사용할 수 있습니다. VISUAL Studio는 MSBuild의 호스트 역할을 하고 필요한 모든 컨텍스트를 이미 캐시하므로 MSBuild Server는 Visual Studio 빌드와 관련이 없습니다.

MSBuild Server는 일반적으로 Azure Pipeline 빌드와 같은 CI 시나리오에서 유용하지 않습니다. 파이프라인은 일반적으로 각 빌드에 대해 요청 시 빌드 환경을 유지한 다음 빌드가 완료되면 삭제하기 때문입니다.

MSBuild 서버 사용

MSBuild 서버는 기본적으로 사용하도록 설정되지 않습니다. 이를 사용하려면 환경 변수 DOTNET_CLI_USE_MSBUILD_SERVERtrue 또는 1로 설정하십시오.

사용하도록 설정되면 새 빌드 프로세스를 처음으로 시작하면 빌드 서버가 시작됩니다. 첫 번째 빌드를 시작하면 캐시가 활성화됩니다. 캐시는 첫 번째 빌드가 완료된 후에 유지됩니다. 따라서 두 번째 빌드는 캐시된 정보로 인해 시작 시간이 크게 단축되므로 더 빠르게 진행됩니다. 캐시는 빌드가 완료된 후에도 유지되지만 유휴 시간 15분 후에 종료됩니다. 따라서 많은 빌드가 연속적으로 요청되는 반복적인 빌드 시나리오에서 주로 유용합니다.

MSBuild Server 종료 또는 사용 안 함

MSBuild 서버 사용을 사용하지 않도록 설정하는 몇 가지 방법이 있습니다. 실행 중인 서버를 종료하려는 경우 명령을 dotnet build-server shutdown실행할 수 있습니다.

컴퓨터의 모든 빌드에 대한 기능을 사용하지 않도록 설정하려면 시스템 환경 변수 DOTNET_CLI_USE_MSBUILD_SERVER0 를 설정하거나 false설정합니다. VS Code와 같은 도구에서 프로젝트별로 이 변수를 설정할 수도 있습니다 launch.json.

명령줄 빌드의 특정 호출에 대해 MSBuild Server를 사용하지 않도록 설정하려면 옵션 /nr:false (또는 /node-reuse:false)을 사용할 수 있습니다.

기능을 완전히 사용하지 않도록 설정하려면 해당 기능을 사용하도록 설정한 변경 웨이브를 옵트아웃할 수 있습니다. SET MSBuildDisableFeaturesFromVersion="17.4". . 이는 동일한 변경 웨이브에서 다른 기능을 사용하지 않도록 설정했습니다. 변경 웨이브에 대한 자세한 내용은 MSBuild 변경 웨이브를 참조하세요.

빌드 서버의 현재 상태 확인

컴퓨터에서 프로세스 상태를 보고 MSBuild 서버 프로세스를 찾을 수 있습니다. MSBuild 서버 프로세스가 시작 dotnet.exe 되고 MSBuild.dll 경로와 명령 옵션이 /nodemode:8표시됩니다. 여기서 8 MSBuild Server( /nodemode:1 일반 MSBuild 작업자 노드를 나타낸다)를 나타냅니다.

참고하십시오