Ich habe ein seltsames Problem beim Erstellen von MSBuild.MSBuild - Race-Bedingung beim Versuch, Projektreferenzen zu erstellen
Ich verwende MSBuild, um eine Lösungsdatei mit/m (paralleler Build) und BuildProjectReferences auf True zu erstellen. Angenommen, ich habe A.vcxproj und B.vcxproj in der sln-Datei mit B mit einem Projektverweis auf A. Was passiert ist Ein Projekt beginnt zuerst zu erstellen und während es in der Mitte der Kompilierung ist, beginnt B-Projekt in einem anderen zu erstellen Prozess (seit Parallel Builds) und es würde Gebäude A aufrufen. Jetzt verursacht dies eine Race-Bedingung, weil wir zwei Prozesse haben, die versuchen, das gleiche Projekt A zu bauen, und ich würde Zugangsprobleme sehen.
Idealerweise sollte MSBuild Build B nicht aufrufen, wenn A das Erstellen nicht abgeschlossen hat oder wenn B aufgerufen wird und dann erkennt, dass A noch erstellt wird, und darauf warten, dass es beendet wird. Nichts davon passiert. Dies geschieht auch nur mit MSBuild - passiert nicht, wenn ich versuche, die Lösungsdatei von VS2015 IDE zu erstellen.
Eine Idee, warum MSBuild so verhält?
Welche MsBuild-Version, welche Visual C++ - Version? Das könnte Einfluss haben. – jessehouwing
VS 2015 und MSBuild 14.0 – comingbacktolife