Sdílet prostřednictvím


Přehled nástroje MSBuild (Visual C++)

Nástroj MSBuild je standardní systém sestavení pro projekty Visual C++.Při sestavování projektu v integrovaném vývojovém prostředí (IDE) používá Visual Studio nástroj msbuild.exe, soubor projektu založený na jazyce XML a volitelné soubory nastavení.Přestože lze použít soubor msbuild.exe a soubor projektu na příkazovém řádku, rozhraní IDE poskytuje uživatelské rozhraní, abyste mohli snadněji konfigurovat nastavení a sestavit projekt.Tento přehled popisuje, jak aplikace Visual C++ používá systém MSBuild.

Požadavky

Přečtěte si následující dokumenty o MSBuild.

MSBuild na příkazovém řádku

Následující příkaz z dokumentu Referenční dokumentace pro použití nástroje MSBuild v příkazovém řádku ukazuje, že nástroj msbuild.exe použije implicitní nebo explicitní argument project file (soubor .vcxproj pro projekty Visual C++) a nula nebo více options příkazového řádku.

msbuild.exe [project file] [options]

Použijte možnosti příkazového řádku /target (nebo /t) a /property (nebo /p) k přepsání vlastností a cílů, které jsou zadány v souboru projektu.

Základní funkcí souboru projektu je určit cíl, což je určitá operace použitá na projekt a vstupy a výstupy, které jsou nutné k provedení operace.Soubor projektu může určit jeden nebo několik cílů, které mohou zahrnovat výchozí cíl.

Každý cíl se skládá ze sekvencí jedné nebo více úloh.Každá úloha je reprezentována třídou rozhraní .NET Framework, která obsahuje jeden spustitelný příkaz.Například úkol CL obsahuje příkaz cl.exe.

Parametr úkolu je vlastnost úlohy třídy a obvykle představuje možnost příkazového řádku pro spustitelný příkaz.Například parametr FavorSizeOrSpeed úkolu CL odpovídá možnostem kompilátoru /Os a /Ot.

Další parametry úlohy podporují infrastrukturu MSBuild.Například parametr úkolu Sources určuje sadu úkolů, které mohou být spotřebovány dalšími úkoly.Další informace o úlohách MSBuild naleznete v tématu Referenční dokumentace úlohy nástroje MSBuild.

Většina úkolů vyžaduje vstup a výstup, jako je například název souboru, cesta, řetězec, čísla nebo logické parametry.Společný vstup například je název pro kompilaci zdrojového souboru .cpp.Důležitý vstupní parametr je řetězec, který určuje konfiguraci sestavení a platformu, například "Debug|Win32".Vstupy a výstupy jsou určeny jedním nebo více uživatelem definovaných prvcích Item XML obsažených v prvku ItemGroup.

Soubor projektu může také určit uživatelem definované vlastnosti a položkyskupiny definic položky.Vlastnosti a položky tvoří páry název/hodnota, které lze použít jako proměnné v sestavení.Název součásti páru definuje makro a součást hodnoty prohlašuje hodnotu makra.K makru vlastnosti lze přistupovat pomocí zápisu $(name) a k makru položky lze přistupovat pomocí zápisu %(name).

Dalších prvky XML v souboru projektu mohou testovat makra a podmíněně nastavit hodnotu všech maker nebo řídit spuštění sestavení.Názvy maker a řetězce literálů mohou být spojeny ke generování konstrukce, jako je například cesta a název souboru.Do příkazového řádku možnost /property nastaví nebo přepíše vlastnost projektu.Položky nelze odkazovat na příkazovém řádku.

Systém MSBuild může podmíněně spustit cíl před, nebo po jiném cíli.Systém může také sestavit cíl na základě toho, zda jsou soubory, které cíl využívá, novější než soubory, které vydává.

MSBuild v IDE

Při nastavení vlastností projektu v integrovaném vývojovém prostředí a uložení projektu Visual C++ zapíše nastavení projektu do souboru projektu.Soubor projektu obsahuje nastavení, které je jedinečné pro váš projekt, ale neobsahuje všechna nastavení, která jsou nutná k sestavení projektu.Soubor projektu obsahuje prvky Import, které obsahují síť dalších podpůrných souborů. Soubory podpory obsahují zbývající vlastnosti, cíle a nastavení, které jsou nutné pro sestavení projektu.

Většina cílů a vlastnosti v podpůrném souboru existuje výhradně pro implementaci systému sestavení.Následující část popisuje některé užitečné cíle a vlastnosti, které můžete zadat v příkazovém řádku nástroje MSBuild.Chcete-li zjistit další cíle a vlastnosti, prozkoumejte soubory v adresářích souboru podpory.

Podpora adresářů se soubory

Standardně primární podpůrné soubory Visual C++ jsou umístěny v následujících adresářích.

Adresář

Popis

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

Obsahuje primární cílové soubory (TARGETS) a soubory vlastností (PROPS), které jsou používány těmito cíly.Ve výchozím nastavení makro $(VCTargetsPath) odkazuje na tento adresář.

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

Obsahuje soubory cíle a vlastnosti specifické pro platformu, které přepíší cíle a vlastnosti svého nadřazeného adresáře.Tento adresář obsahuje také soubor .dll, který definuje úlohy, které jsou používány cíli v tomto adresáři.

Zástupný text platform představuje podadresář sady nástrojů ARM, Win32 nebo x64.

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

Obsahuje adresáře, které umožňují sestavení generovat aplikace Visual C++ se zadanou sadou nástrojů version.

Zástupný text platform představuje podadresář sady nástrojů ARM, Win32 nebo x64.Zástupný symbol toolset představuje podadresář sady nástrojů pro sestavení aplikací Windows, Windows XP nebo Windows Phone.

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

Obsahuje adresáře, které umožňují sestavení generovat aplikace 9.0 nebo Visual C++ 10.0.

Zástupný text platform představuje podadresář sady nástrojů Itanium, Win32 nebo x64.Zástupný text toolset představuje podadresář sady nástrojů v90 nebo v100.

Soubory podpory

Adresáře souboru podpory obsahují soubory s těmito příponami.

Přípona

Popis

.targets

Obsahuje elementy XML Target, které určují úkoly, které jsou spouštěny cílem.Může také obsahovat Property Group, Item Group, Item Definition Group a uživatelem definované prvky Item, které slouží k přiřazení souborů a možnosti příkazového řádku pro parametry úlohy.

Další informace naleznete v tématu Target – element (MSBuild).

.props

Obsahuje Property Group a uživatelem definované elementy XML Property, které určují soubor a nastavení parametru používané během sestavení.

Může také obsahovat Item Definition Group a uživatelem definované prvky Item XML, které určují další nastavení.Položky definované ve skupině definice se podobají vlastnostem, ale nejsou přístupné z příkazového řádku.Soubory projektu Visual C++ často používají položky namísto vlastností k vyjádření nastavení.

Další informace naleznete v tématu ItemGroup – element (MSBuild)m ItemDefinitionGroup – element (MSBuild) a Item – prvek (MSBuild).

.xml

Obsahuje elementy XML, které deklarují a inicializují prvky uživatelského rozhraní IDE, jako jsou seznamy vlastností a stránky vlastností a ovládací prvky textového pole a seznamu.

Soubory XML přímo podporují IDE, nikoli MSBuild.Však hodnoty vlastnosti IDE jsou přiřazeny k vlastnostem sestavení a položkám.

Většina souborů XML je v podadresáři národního prostředí.Například soubory pro oblast angličtina-USA jsou v $(VCTargetsPath)\1033\.

Uživatelské cíle a vlastnosti

K co nejefektivnějšímu využití MSBuild na příkazovém řádku pomáhá zjistit, jaké vlastnosti a cíle jsou užitečné a důležité.Většina vlastností a cílů pomáhá implementovat systém sestavení Visual C++ a v důsledku toho nejsou relevantní pro daného uživatele.Tato část popisuje některé vhodné uživatelem orientované vlastnosti a cíle.

Vlastnost PlatformToolset

Vlastnost PlatformToolset určuje, které sady nástrojů Visual C++ se používají v sestavení.Hodnota vlastnosti je zřetězená s literálovými řetězci k vytvoření cesty k adresáři, který obsahuje vlastnost a cílové soubory potřebné k sestavení projektu pro konkrétní platformu.

Nastavte vlastnost PlatformToolset na v110, abyste mohli použít nástroje a knihovny Visual C++ v sadě Visual Studio 2012 pro sestavení aplikace.

msbuild myProject.vcxproj /p:PlatformToolset=v110

Nastavte vlastnost PlatformToolset na v100, abyste mohli použít nástroje a knihovny Visual C++ 2010 pro sestavení aplikace.

msbuild myProject.vcxproj /p:PlatformToolset=v100

Nastavte vlastnost PlatformToolset na v90, abyste mohli použít nástroje a knihovny Visual C++ 2008 pro sestavení aplikace.Sada nástrojů Visual C++ 2008 musí již být nainstalována v počítači, aby byla tato vlastnost efektivní.

msbuild myProject.vcxproj /p:PlatformToolset=v90

Vlastnost PreferredToolArchitecture

Vlastnost PreferredToolArchitecture určuje, zda jsou v sestavení použity 32bitové nebo 64bitové kompilátory a nástroje.Tato vlastnost nemá vliv na výstupní architekturu nebo konfiguraci platformy.Ve výchozím nastavení nástroj MSBuild používá verzi x86 kompilátoru a nástroje, pokud tato vlastnost není nastavena nebo je nastavit na libovolnou hodnotu jinou než x64.

Nastavte vlastnost PreferredToolArchitecture na x64, abyste mohli použít 64bitový kompilátor a nástroje pro sestavení aplikace.

msbuild myProject.vcxproj /p:PreferredToolArchitecture=x64

Vlastnost UseEnv

Standardně nastavení specifické pro platformu pro aktuální projekt přepíšou proměnné prostředí PATH, INCLUDE, LIB, LIBPATH, CONFIGURATION a PLATFORM.Nastavte vlastnost UseEnv na true a ujistěte se tak, že proměnné prostředí nejsou přepsána.

msbuild myProject.vcxproj /p:UseEnv=true

Cíle

Existují stovky cílů v podpůrných souborech jazyka Visual C++.Nejvíce je však cílů orientovaných na systém, které uživatel může ignorovat.Většině cílů systémů předchází podtržítko (_), nebo název, který začíná "PřipravitNa", "Vypočítat", "Před", "Po", "Pre" nebo "Post".

Následující tabulka uvádí několik vhodných cílů zaměřených na uživatele.

Cíl

Popis

BscMake

Spustí nástroj Informace o procházení nástroje pro správu Microsoft bscmake.exe.

Sestavení

Vytvoří projekt.

Toto je výchozí cíl pro projekt.

ClCompile

Spustí nástroj kompilátoru Visual C++, cl.exe.

Vyčistit

Odstraní dočasné a průběžné zprostředkující soubory sestavení.

Lib

Spustí nástroj Správce 32bitové knihovny Microsoft, lib.exe.

Odkaz

Spustí nástroj linker Visual C++, link.exe.

ManifestResourceCompile

Extrahujte seznam prostředků z manifestu a poté spusťte nástroj Microsoft Windows Resource Compiler, rc.exe.

Midl

Spustí nástroj kompilátoru MIDL (Microsoft Interface Definition Language), midl.exe.

Znovu sestavit

Čistí a poté sestaví váš projekt.

ResourceCompile

Spustí nástroj Microsoft Windows Resource Compiler, rc.exe.

XdcMake

Spustí nástroj dokumentace XML, xdcmake.exe.

Xsd

Spustí nástroj Definice schématu XML, xsd.exe.

Viz také

Další zdroje

MSBuild (Visual C++)