Udostępnij za pośrednictwem


Do tworzenia projektów przy użyciu wielu procesorów

MSBuild 3.5 można skorzystać z systemy wielu procesorów lub wielu procesorów.Proces budowania oddzielnych jest tworzony dla każdego procesora dostępne.Na przykład, jeśli system ma cztery procesory, następnie budować cztery procesy są tworzone.MSBuildmoże przetwarzać te wersje jednocześnie, a związku z tym ogólnie ograniczony czas montażu. Jednakże równoległych budynku wprowadza pewne zmiany w jak zachodzą procesy kompilacji.W tym temacie omówiono te zmiany.

Odwołania do projektu na

Gdy Microsoft Build Engine spotkania odwołanie projektu do projektu (P2P), podczas gdy używa równolegle opiera się na tworzenie projektów, opiera się ona odwołanie tylko jeden raz.Jeśli dwa projekty tymi samymi odwołaniami P2P, odwołanie nie jest odbudowywany dla każdego projektu.Zamiast tego aparat kompilacji zwraca ten sam odwołanie P2P do obu projektów, które od niej zależne.Przyszłe żądania w sesji dla tego samego celu dostępne są tymi samymi odwołaniami P2P.

Wykrywanie cyklu

Cyklu wykrywania działa tak samo, jak to miało miejsce MSBuild 2.0, chyba że teraz MSBuild zgłosić wykrywania cyklu w innym czasie lub w kompilacji.

Błędy i wyjątki podczas buduje równoległego

W równoległych buduje błędy i wyjątki może wystąpić w innym czasie niż samo, jak w kompilacji nie są równoległe, a po jednym projekcie nie buduje, inne wersje projektu kontynuować.MSBuildnie zatrzyma każdej budowy projektu, który buduje się równolegle z tą, która nie powiodło się. Inne projekty kontynuować tworzenie aż uda czy nie.Jednakże jeśli ContinueOnError został włączony, a następnie buduje nie zostanie zatrzymane, nawet w przypadku wystąpienia błędu.

Projektu programu Visual C++ (.vcproj) i pliki rozwiązania (.sln)

Obie Visual C++ projektów (.vcproj) i pliki rozwiązania (.sln) mogą być przekazywane do Zadanie programu MSBuild.Dla Visual C++ projektów, wywoływana jest VCWrapperProject, a następnie wewnętrzną MSBuild tworzenia projektu.Dla Visual C++ rozwiązań, tworzony jest SolutionWrapperProject, a następnie wewnętrzną MSBuild tworzenia projektu.W obu przypadkach projekt wynikowy jest traktowana tak samo, jak każdy inny MSBuild projektu.

Wykonanie wielu

Prawie wszystkie czynności związanych z kompilacji wymagają bieżącego katalogu do pozostania na stałe w trakcie procesu tworzenia, aby zapobiec błędom związany ze ścieżką.W związku z tym, projektów nie można uruchomić na różne wątki w MSBuild ponieważ one powodować wiele katalogów, które ma zostać utworzony.

Aby uniknąć tego problemu, ale nadal umożliwia buduje wieloprocesorowych, MSBuild zastosowań "OLE DB." Za pomocą izolacja procesu MSBuild można utworzyć maksymalnie n procesy, którym n jest równa liczbie procesorów dostępnych w systemie.Na przykład jeśli MSBuild buduje rozwiązania w systemie, który ma dwa procesory, wtedy tylko dwie skompilować procesy są tworzone.Procesy te są ponownie wykorzystywane do budowy wszystkich projektów w rozwiązaniu.

Zobacz też

Koncepcje

Równoległe tworzenie wielu projektów za pomocą narzędzia MSBuild

Program MSBuild zadań