Kolejność budowania MSBuild

Mam duże rozwiązanie z ponad 100 projektami (C ++, Managed C ++, C #) i wiele z nich zależy od siebie.

Mam serwer TeamCity i chcę tam zbudować to rozwiązanie.

Kiedy buduję rozwiązanie w VisualStudio, wszystko idzie dobrze, ale z TeamCity mam błąd CS0006. Wiem, dlaczego tak jest - TeamCity używa MSBuild 4 do budowania rozwiązań, ale znany jest błąd w MSBuild 4 - ignoruje on porządek budowania i buduje projekty z rozwiązań, których chce. Z powodu tego zachowania, jeśli masz:

Project A
Project B which has reference to A

MSBuild może zbudować te projekty w takiej kolejności:

1. B
2. A

Najłatwiejszym rozwiązaniem jest ustawienieBuildProjectReferences = true (domyślnie), a wszystkie projekty, do których się odwołano, będą budowane automatycznie. Ale nie mogę użyć tego podejścia, ponieważ nie wszystkie projekty w tym rozwiązaniu są przywoływane i nie mogę budować projektów z innego rozwiązania.

Oto kolejna poprawka na ten problem - użyjManager konfiguracji i wyłącz wszystkie projekty, które nie powinny się budować, ale działa tylko w VisualStudio - MSBuild ignoruje to i tworzy wszystkie projekty, do których się odwołuje.

Problem polega na przywróceniu kolejności budowania, którą widzę w oknie VisualStudio w oknieProjectBuildOrder co nie jest prawdą, jeśli używam MSBuild bezpośrednio z konsoli.

questionAnswers(3)

yourAnswerToTheQuestion