Udostępnij za pośrednictwem


Informacje o MSBuild (Visual C++)

Program MSBuild jest standardowym systemem kompilacji dla projektów w języku Visual C++Kiedy tworzysz projekt w zintegrowanym środowisku programistycznym (IDE) Visual Studio, korzysta on z narzędzia msbuild.exe, na pliku projektu opartym na języku XML, oraz plików ustawień opcjonalnych.Chociaż można używać pliku msbuild.exe i pliku projektu w wierszu polecenia, IDE udostępnia interfejs użytkownika, tak aby łatwiej można było konfigurować ustawienia i tworzyć projekt.Przegląd ten opisuje, jak Visual C++ korzysta z systemu MSBuild.

Warunki wstępne

Przeczytaj następujące dokumenty dotyczące programu MSBuild.

Program MSBuild w wierszu polecenia

Poniższa instrukcja z dokumentu Informacje w wierszu polecenia programu MSBuild pokazuje, że narzędzie msbuild.exe podaje argument niejawny lub jawny project file (plik .vcxproj dla projektów Visual C++) i zero lub więcej wierszy polecenia options.

msbuild.exe [project file] [options]

Użyj opcji wiersza polecenia /target (lub /t) i /property (lub /p) w celu zastąpienia właściwości i obiektów docelowych określonych w pliku projektu.

Podstawową funkcją pliku projektu jest zdefiniowanie miejsca docelowego, które jest określoną operacją stosowaną do projektu oraz wejść i wyjść, które są wymagane do wykonania tej operacji.Plik projektu może określać jeden lub więcej obiektów docelowych, które mogą zawierać domyślny adres docelowy.

Każdy cel składa się z sekwencji jednego lub większej liczby zadań.Każde zadanie jest reprezentowane przez klasę .NET Framework, która zawiera polecenia pliku wykonywalnego.Na przykład zadanie CL zawiera polecenie cl.exe.

Parametr zadania jest właściwością zadania klasy i zazwyczaj reprezentuje opcję wiersza polecenia dla polecenia pliku wykonywalnego.Na przykład parametr FavorSizeOrSpeed zadania CL odpowiada opcjom kompilatora /Os i /Ot.

Parametry dodatkowe zadania obsługuje infrastrukturę programu MSBuild.Na przykład parametr zadania Sources określa zestaw zadań, które mogą być wykorzystywane przez inne zadania.Aby uzyskać więcej informacji na temat zadań MSBuild, zobacz Odwołanie do zadania MSBuild.

Większość zadań wymaga danych wejściowych i wyjściowych, takich jak nazwy plików, ścieżki oraz parametrów tekstowych, liczbowych lub logicznych.Na przykład typowymi danymi wejściowymi jest nazwa pliku źródłowego .cpp do skompilowania.Ważny parametr wejściowy jest ciągiem, który określa konfigurację kompilacji i platformy, na przykład „Debug|Win32”.Wejścia i wyjścia są określone przez jeden lub więcej elementów XML Item zdefiniowanych przez użytkownika zawartych w elemencie ItemGroup.

Plik projektu może również określać właściwości zdefiniowane przez użytkownika i elementy elementy grupy definicji elementu.Właściwości i elementy tworzą pary nazwa/wartość, które mogą być używane jako zmienne w kompilacji.Składnik nazwy pary definiuje makro, a składnik wartości deklaruje wartość makro.Makro właściwości jest dostępne przy użyciu zapisu $(name), a makro elementu jest dostępne przy użyciu notacji %(name).

Inne elementy XML w pliku projektu mogą testować makra, a następnie warunkowo ustawiać wartość każdego makra lub kontrolować wykonywanie kompilacji.Nazwy makr i ciągi literałowe mogą zostać łączone w celu generowania konstrukcji, takich jak ścieżka i nazwa pliku.W wierszu polecenia opcja /property ustawia lub zastępuje właściwość projektu.Odwołań do elementów nie może być w wierszu polecenia.

System MSBuild warunkowo może wykonać element docelowy, przed lub po innym elementem docelowym.Ponadto system można zbudować obiekt docelowy oparty na tym, czy pliki które zajmują miejsce docelowe, są nowsze niż pliki, które on emituje.

Program MSBuild w środowisku IDE

Gdy ustawiasz właściwości projektu w IDE, a następnie zapisujesz projekt, Visual C++ zapisuje ustawienia projektu do pliku projektu.Plik projektu zawiera ustawienia, które są unikatowe dla projektu, ale nie zawiera wszystkich ustawień, które są wymagane do utworzenia projektu.Plik projektu zawiera elementy Import, które zawierają sieć dodatkowych plików pomocniczych. Pliki obsługi zawierają pozostałe właściwości, cele i ustawienia wymagane do utworzenia projektu.

Większość obiektów docelowych i właściwości w plikach pomocy technicznej istnieje wyłącznie w celu implementowania systemu kompilacji.W poniższej sekcji omówiono niektóre użyteczne cele i właściwości, które można określić w wierszu polecenia programu MSBuild.Aby odkryć więcej obiektów docelowych i właściwości, eksploruj pliki w katalogach plików pomocy technicznej.

Obsługa katalogów plików

Domyślnie pliki obsługi podstawowego języka Visual C++ znajdują się w następujących katalogach.

Katalog

Opis

drive:\Program Files\MSBuild\Microsoft.Cpp\v4.0\version\

Zawiera podstawowe pliki docelowe (.targets) i pliki właściwości (.props), które są wykorzystywane przy realizacji celów.Domyślnie makro $(VCTargetsPath) odwołuje się do tego katalogu.

drive:\Program Files\MSBuild\Microsoft.Cpp\v4.0\version\Platforms\platform\

Zawiera pliki docelowych i właściwości specyficzne dla platformy, które zastępują cele i właściwości w katalogu nadrzędnym.Ten katalog zawiera również plik .dll, który określa zadania, które są wykorzystywane przez cele w tym katalogu.

Symbol zastępczy platform reprezentuje ARM, Win32, lub podkatalog x64.

drive:\Program Files\MSBuild\Microsoft.Cpp\v4.0\version\Platforms\platform\PlatformToolsets\toolset\

Zawiera katalogi, które umożliwiają kompilacji wygenerowanie aplikacji Visual C++ z określonym zestawem narzędzi version.

Symbol zastępczy platform reprezentuje ARM, Win32, lub podkatalog x64.Symbol zastępczy toolset reprezentuje podkatalog zestawu narzędzi do tworzenia aplikacji systemu Windows, Windows XP lub Windows Phone.

drive: \Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\platform\PlatformToolsets\toolset\

Zawiera katalogi, które umożliwiają kompilacji wygenerowanie aplikacji 9.0 lub aplikacji Visual C++ 10.0.

Symbol zastępczy platform reprezentuje Itanium, Win32, lub podkatalog x64.Symbol zastępczy toolset reprezentuje podkatalog zestawu narzędzi v90 lub v100.

Obsługa plików

Katalogi plików obsługi zawierają pliki o następujących rozszerzeniach.

Rozszerzenie

Opis

.targets

Zawiera elementy XML Target, które określają zadania wykonywane przez obiekt docelowy.Może również zawierać elementy Property Group, Item Group, Item Definition Group i zdefiniowane przez użytkownika elementy Item, które są używane do przypisywania plików i opcji wiersza polecenia do parametrów zadania.

Aby uzyskać dodatkowe informacje, zobacz Target — Element (MSBuild).

.props

Zawiera Property Group i zdefiniowane przez użytkownika elementy XML Property, które określają ustawienia plików i parametrów używanych podczas kompilacji.

Może również zawierać obiekt Item Definition Group i zdefiniowane przez użytkownika elementy XML Item, które określają dodatkowe ustawienia.Elementy zdefiniowane w grupie definicji elementów przypominają właściwości, ale nie są dostępne z wiersza polecenia.Pliki projektu Visual C++ często używają elementów zamiast właściwości do reprezentowania ustawień.

Aby uzyskać więcej informacji, zobacz ItemGroup — Element (MSBuild), ItemDefinitionGroup — Element (MSBuild), i Item — Element (MSBuild).

.xml

Zawiera elementy XML, które deklaruje i inicjuje elementy interfejsu użytkownika IDE, takie jak arkusze właściwości i strony właściwości, pola tekstowe i formanty pola listy.

Pliki .xml bezpośrednio obsługują IDE, nie MSBuild.Jednak wartości właściwości środowiska IDE są przypisywane do właściwości i elementów kompilacji.

Większość plików .xml znajduje się w podkatalogu specyficznym dla ustawień regionalnych.Na przykład pliki dla regionu Angielski-Stany Zjednoczone są w folderze $(VCTargetsPath)\1033\.

Cele i właściwości użytkownika

Aby najefektywniej wykorzystać możliwości programu MSBuild w wierszu polecenia, warto się dowiedzieć, które właściwości i obiekty docelowe są przydatne i istotne.Większość właściwości i obiektów docelowych ułatwia implementację systemu kompilacji składni języka Visual C++ i w związku z tym nie dotyczą użytkownika.Ten rozdział opisuje niektóre zorientowane na użytkownika właściwości i elementy docelowe, które warto znać.

Właściwość PlatformToolset

Właściwość PlatformToolset określa, który zestaw narzędzi Visual C++ jest używany w kompilacji.Wartość właściwości jest połączona z ciągami tekstowymi, tworząc ścieżkę katalogu, zawierającego pliki właściwości i pliki docelowe, które są wymagane do utworzenia projektu dla konkretnej platformy.

Ustaw właściwość PlatformToolset na v110, aby użyć narzędzi i bibliotek Visual C++ w programie Visual Studio 2012 do budowania aplikacji.

msbuild myProject.vcxproj /p:PlatformToolset=v110

Ustaw właściwość PlatformToolset na v100, aby użyć narzędzi i bibliotek Visual C++ 2010 do budowania aplikacji.

msbuild myProject.vcxproj /p:PlatformToolset=v100

Ustaw właściwość PlatformToolset na v90, aby użyć narzędzi i bibliotek Visual C++ 2008 do budowania aplikacji.Zestaw narzędzi Visual C++ 2008 musi już być zainstalowany na tym komputerze dla tej właściwości, aby zapewnić skuteczność.

msbuild myProject.vcxproj /p:PlatformToolset=v90

Właściwość PreferredToolArchitecture

Właściwość PreferredToolArchitecture określa, czy 32-bitowy lub 64-bitowy kompilator i narzędzia są używane w kompilacji.Właściwość ta nie wpływa na konfigurację ani architekturę platformy wyjściowej.Domyślnie MSBuild używa wersji x86 kompilatora i narzędzi, jeśli ta właściwość nie jest ustawiona lub jest ustawiona na jakąkolwiek wartość inną niż x64.

Ustaw właściwość PreferredToolArchitecture na x64, aby użyć kompilatora 64-bitowego i narzędzi do budowania aplikacji.

msbuild myProject.vcxproj /p:PreferredToolArchitecture=x64

Właściwość UseEnv

Domyślnie ustawienia specyficzne dla platformy dla bieżącego projektu zastępują zmienne środowiskowe PATH, INCLUDE, LIB, LIBPATH, CONFIGURATION i PLATFORM.Ustaw właściwość UseEnv na true, aby zagwarantować, że zmienne środowiskowe nie są zastępowane.

msbuild myProject.vcxproj /p:UseEnv=true

Obiekty docelowe

Istnieją setki obiektów docelowych w plikach obsługi języka Visual C++.Jednak w większości są to cele systemowe, które użytkownik może ignorować.Większość obiektów docelowych systemów jest poprzedzonych znakiem podkreślenia (_) lub mają nazwę, która zaczyna się od „PrepareFor”, „Compute”, „Before”, „After”, „Pre” lub „Post”.

Poniższa tabela zawiera listę kilku istotnych celów ukierunkowanych na użytkownika.

Docelowy

Opis

BscMake

Uruchamia narzędzie konserwacji przeglądania informacji Microsoft bscmake.exe.

Kompilacja

Kompiluje projekt.

Jest to domyślny cel dla projektu.

ClCompile

Uruchamia narzędzie kompilatora środowiska Visual C++ cl.exe.

Wyczyść

Usuwa tymczasowe i pośrednie pliki kompilacji.

Bibl

Uruchamia narzędzie menedżera 32-bitowej biblioteki Microsoft lib.exe.

Łącze

Uruchamia narzędzie konsolidacji środowiska Visual C++ link.exe.

ManifestResourceCompile

Wyodrębnia listę zasobów z manifestu, a następnie uruchamia narzędzie kompilatora zasobów systemu Microsoft Windows rc.exe.

Midl

Uruchamia narzędzie kompilatora języka definicji interfejsu Microsoft (MIDL) midl.exe.

Ponownie kompiluj

Czyści, a następnie kompiluje projekt.

ResourceCompile

Uruchamia narzędzie kompilatora zasobów systemu Microsoft Windows rc.exe.

XdcMake

Uruchamia narzędzie dokumentacji języka XML xdcmake.exe.

Xsd

Uruchamia narzędzie definicji schematu XML xsd.exe.

Zobacz też

Inne zasoby

MSBuild (Visual C++)