Omówienie programu MSBuild (Visual C++)
Program MSBuild jest standard stworzenia systemu dla projektów Visual C++.Podczas tworzenia projektu w Visual Studio zintegrowane środowisko programistyczne (IDE) używa narzędzia msbuild.exe, plik projektu, oparty na języku XML i plików ustawień opcjonalnych.Chociaż można użyć msbuild.exe i pliku projektu, w wierszu polecenia, IDE udostępnia interfejs użytkownika, tak aby łatwiej można skonfigurować ustawienia i tworzenie projektów.Przegląd ten opisuje, jak Visual C++ korzysta z systemu MSBuild.
Wymagania wstępne
Przeczytaj następujące dokumenty dotyczące programu MSBuild.
Program MSBuild
Omówienie pojęć MSBuild.Program MSBuild odniesienia
Informacje na temat systemu MSBuild.Odwołanie do projektu programu MSBuild pliku schematu
Wyświetla listę elementów schematu XML programu MSBuild, wraz z ich atrybuty i elementy nadrzędne i podrzędne.Uwaga szczególnie ItemGroup, PropertyGroup, docelowej, i zadania elementy.Informacje w wierszu polecenia programu MSBuild
W tym artykule opisano argumenty wiersza polecenia i opcje, których można używać z msbuild.exe.Zadanie programu MSBuild odniesienia
Zawiera opis zadań programu MSBuild.Especially note these tasks, which are specific to Visual C++: Zadanie BscMake, Zadanie CL, Zadanie CPPClean, Zadanie LIB, Łącze zadania, Zadanie MIDL, Zadanie MT, Zadanie RC, Zadanie SetEnv, Zadanie VCMessage, Zadanie XDCMake, Zadanie XSD.
Program MSBuild w wierszu polecenia
Poniższa instrukcja z Informacje w wierszu polecenia programu MSBuild dokument pokazuje, że narzędzie msbuild.exe przyjmuje niejawne lub wyraźne project file argument (plik .vcxproj na projekty Visual C++) i zero lub więcej wiersza polecenia options.
msbuild.exe [project file] [options]
Użyj /target (lub /t) i /property (lub /p) opcje wiersza polecenia, aby zastąpić właściwości i cele, które są określone w pliku projektu.
Podstawową funkcją plik projektu jest określenie docelowej, który jest w danej operacji, stosowane do projektu, a wejściowych i wyjściowych, które są wymagane do wykonania tej operacji.Plik projektu można określić jeden lub więcej obiektów docelowych, obejmujące docelowych domyślne.
Każdego obiektu docelowego składa się z sekwencji jednego lub więcej zadania.Każde zadanie jest reprezentowany przez.Klasa NET Framework, która zawiera jeden polecenia pliku wykonywalnego.Na przykład CL zadania zawiera cl.exe polecenia.
A parametru zadania jest właściwością zadania klasy i zazwyczaj reprezentuje opcji wiersza polecenia polecenia pliku wykonywalnego.Na przykład FavorSizeOrSpeed parametr CL zadanie odpowiada /Os i /Ot opcje kompilatora.
Parametry dodatkowe zadania obsługi infrastruktury MSBuild.Na przykład Sources zadanie parametr określa zestaw zadań, które mogą być wykorzystane przez inne zadania.Aby uzyskać więcej informacji na temat MSBuild zadań, zobacz Zadanie programu MSBuild odniesienia.
Większość zadań wymaga wejściowych i wyjściowych, takich jak nazwy plików, ścieżki i ciąg znaków, parametrów liczbowych lub logicznych.Na przykład wspólne dane wejściowe jest nazwa pliku źródłowego .cpp skompilować.Ważnym parametrem wejściowym jest ciąg, który określa się konfigurację kompilacji i platformy, na przykład "Debug|Win32 ".Wejść i wyjść są określone przez jeden lub więcej XML zdefiniowanej przez użytkownika Item elementy zawarte w ItemGroup element.
Plik projektu można także określić, zdefiniowane przez użytkownika Właściwości i grupy definicji elementuelementy.Właściwości i elementy tworzą pary nazwa/wartość, które mogą być używane jako zmienne w kompilacji.Określa składnik Nazwa parę makro, i deklaruje składnik wartość wartość makro.Właściwość makro jest dostępny przy użyciu $(Nazwa) notacji i makra element jest dostępny przy użyciu %(Nazwa) notacji.
Inne elementy XML w pliku projektu można testowania makr i następnie warunkowo wartość wszelkich makro lub kontrolować wykonywanie tej kompilacji.Nazwy makr i ciągi może zostać dołączona do generowania konstrukcje, takie jak ścieżka i nazwa pliku.W wierszu polecenia /property opcji ustawia lub zastępuje właściwość projektu.Elementy nie mogą odwoływać się w wierszu polecenia.
MSBuild system warunkowo można wykonać elementu docelowego, przed lub po innego obiektu docelowego.System może kreowania docelowych, w zależności od tego, czy są nowsze niż pliki, które emituje pliki, które używa obiektu docelowego.
Program MSBuild w IDE
Po ustawieniu właściwości projektu w IDE i następnie zapisać 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 skonstruowania projektu.Plik projektu zawiera Import elementy, które zawierają dodatkowe sieci obsługuje pliki. Pliki obsługi zawierają pozostałe właściwości, cele i ustawienia, które są wymagane do skonstruowania projektu.
Większość cele i właściwości w plikach pomocy technicznej istnieją jedynie w celu wprowadzenia w życie systemu kompilacji.W następującej części 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 cele i właściwości, należy zbadać pliki w katalogach plik pomocy technicznej.
Obsługa katalogów plików
Domyślnie podstawowe pliki obsługi języka Visual C++ znajdują się w następujących katalogach.
Katalog |
Opis |
---|---|
dysk: \Program Files\MSBuild\Microsoft.Cpp\v4.0\ |
Zawiera pliki docelowe podstawowego (.targets) i właściwości plików (.props) używane przez elementy docelowe.Domyślnie makro $(VCTargetsPath) odwołuje się do tego katalogu. |
dysk: \Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\platformy\ |
Zawiera pliki docelowe 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 definiuje zadań, które są używane przez obiekty docelowe, w tym katalogu. Platformy symbol zastępczy reprezentuje Itanium, Win32, lub x64 podkatalogu. |
dysk: \Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\platformy\ PlatformToolsets\toolset\ |
Zawiera katalogi, umożliwiające kompilacji do generowania 9.0 lub aplikacji Visual C++ 10.0. Platformy symbol zastępczy reprezentuje Itanium, Win32, lub x64 podkatalogu.Toolset symbol zastępczy reprezentuje v90 lub v100 toolset podkatalogu. |
Pliki pomocy technicznej
Katalogi plików obsługi technicznej zawiera pliki o następujących rozszerzeniach.
Rozszerzenie |
Opis |
---|---|
.TARGETS |
Zawiera Target elementy XML, które określają zadania, które są wykonywane przez obiekt docelowy.Może również zawierać Property Group, Item Group, Item Definition Groupi zdefiniowane przez użytkownika Item elementów, które są używane do przypisywania pliki i opcje wiersza polecenia do parametrów zadania. Aby uzyskać więcej informacji, zobacz Element docelowy (MSBuild). |
.props |
Zawiera Property Group i zdefiniowane przez użytkownika Property elementy XML, które określają ustawienia pliku i parametrów, które są używane podczas kompilacji. Może również zawierać Item Definition Group i zdefiniowane przez użytkownika Item elementy XML, które określają dodatkowe ustawienia.Elementy zdefiniowane w grupie definicji elementu przypominają właściwości, ale nie są dostępne z wiersza polecenia.Visual C++ projektu plików często używa elementów zamiast właściwości do reprezentowania ustawienia. Aby uzyskać więcej informacji, zobacz Element ItemGroup (MSBuild), Element ItemDefinitionGroup (MSBuild), i Pozycja elementu (MSBuild). |
XML |
Zawiera elementy XML, które deklaruje i zainicjować elementy interfejsu użytkownika IDE, takich jak arkusze właściwości i stron właściwości pola i listy pól tekstowych. Pliki .xml bezpośrednio obsługuje IDE, nie MSBuild.Jednakże wartości właściwości IDE są przypisywane do budowania właściwości i elementy. Większość plików .xml znajdują się w podkatalogu specyficzne dla danej lokalizacji.Na przykład pliki regionu Angielskiego są w \1033\ $(VCTargetsPath). |
Cele użytkownika i właściwości
Aby użyć programu MSBuild najbardziej skutecznie w wierszu polecenia, pomaga wiedzieć, które właściwości i obiekty docelowe są przydatne i istotne.Większość właściwości i cele wdrażanie systemu Visual C++ kompilacji i w związku z tym nie są istotne dla użytkownika.W tej sekcji opisano niektóre wartościowej właściwości zorientowana na użytkownika i cele.
Właściwość PlatformToolset
PlatformToolset Właściwość określa, czy Visual C++ 2010 lub przybornik Visual C++ 2008 jest używana w kompilacji.Wartość właściwości jest łączone z ciągami tekstowymi, aby utworzyć ścieżkę katalogu zawierającego pliki właściwości i docelowych, które są wymagane do skonstruowania projektu dla konkretnej platformy.
Ustaw PlatformToolset właściwość, aby v200 Aby użyć Visual C++ 2010 narzędzi do tworzenia aplikacji.
msbuild myProject.vcxproj /p:PlatformToolset=v100
Ustaw PlatformToolset właściwość, aby v90 do tworzenia aplikacji za pomocą narzędzi Visual C++ 2008.Przybornik Visual C++ 2008 muszą już zainstalowane na komputerze dla tej właściwości, aby były skuteczne.
msbuild myProject.vcxproj /p:PlatformToolset=v90
Właściwość UseEnv
Domyślnie ustawienia specyficzne dla platformy dla bieżącego projektu zastępują zmienne środowiskowe ścieżki, dołączanie, LIB, LIBPATH, konfiguracji i platformy.Ustaw UseEnv właściwość, aby true do zagwarantowania, że zmienne środowiskowe nie są zastępowane.
msbuild myProject.vcxproj /p:UseEnv=true
Cele
Istnieją setki cele w pliki obsługi języka Visual C++.Jednak większość są cele systemowe, które użytkownik może zignorować.Większość obiektów docelowych systemu są poprzedzane znaku podkreślenia (_) lub mieć nazwę, która rozpoczyna się od "PrepareFor", "Obliczyć", "Przed", "Po", "Pre" lub "Księgowanie".
Poniższa lista zawiera kilka wartościowej cele zorientowana na użytkownika.
Docelowe |
Opis |
---|---|
BscMake |
Przeglądanie informacji o utrzymanie narzędzie Microsoft narzędzie wykonuje bscmake.exe. |
Kompilacja |
Buduje projektu. Jest to domyślny obiekt docelowy dla projektu. |
ClCompile |
Narzędzie kompilatora Visual C++ wykonuje cl.exe. |
Czyszczenia |
Usuwa tymczasowych i pośrednie tworzenie plików. |
Lib |
Wykonuje narzędzie Microsoft 32-bitowa biblioteka Menedżera lib.exe. |
Łącze |
Narzędzie Visual C++ linker wykonuje link.exe. |
ManifestResourceCompile |
Wyodrębnia z listy zasobów z manifestu, a następnie wykonuje narzędzie Microsoft Windows Resource kompilator rc.exe. |
MIDL |
Wykonuje narzędzie kompilatora Microsoft Interface Definition Language (MIDL), midl.exe. |
Odbuduj |
Czyści i następnie konstruuje projektu. |
ResourceCompile |
Narzędzie Microsoft Windows Resource kompilator wykonuje rc.exe. |
XdcMake |
Wykonuje narzędzie dokumentacji XML xdcmake.exe. |
XSD |
Wykonuje narzędzie definicji schematu XML xsd.exe. |