MSBuild를 사용하여 빌드하는 동안 이상한 문제가 발생했습니다.MSBuild - 프로젝트 참조를 빌드하는 중 경쟁 조건
저는 MSBuild를 사용하여/m (병렬 빌드) 및 BuildProjectReferences를 true로 설정하여 솔루션 파일을 작성하고 있습니다. A.vcxproj와 B.vcxproj가 sln 파일에 있고 B가 A 프로젝트 참조를 가지고 있다고 가정합니다. 프로젝트가 처음 빌드되기 시작하고 컴파일 중 B 프로젝트가 빌드를 시작합니다 프로세스 (이후 병렬 빌드) 및 건물 A 호출합니다. 우리가 두 개의 프로세스가 동일한 프로젝트 A 빌드하려고 및 이제 액세스 문제가 나타납니다 때문에 경쟁 조건이 발생합니다.
A가 완료되지 않았거나 B를 호출 한 경우 MSBuild가 B를 호출하지 말고 A가 여전히 작성 중이며 완료 될 때까지 기다리는 것이 이상적입니다. 아무 것도 발생하지 않습니다. 또한, MSBuild에서만 발생합니다. VS2015 IDE에서 솔루션 파일을 빌드하려고하면 발생하지 않습니다.
MSBuild가 이런 식으로 동작하는 이유는 무엇입니까?
어떤 MsBuild 버전, 어떤 Visual C++ 버전? 그것은 영향력을 가질 수 있습니다. – jessehouwing
VS 2015 및 MSBuild 14.0 – comingbacktolife