Běžná makra pro příkazy a vlastnosti nástroje MSBuild

V závislosti na možnostech instalace může Visual Studio zpřístupnit stovky maker v projektu sady Visual Studio založeném na .vcxproj nástroji MSBuild. Makra odpovídají vlastnostem nástroje MSBuild, které jsou nastaveny ve výchozím nastavení, nebo v .props souborech .targets nebo v nastavení projektu. Tato makra můžete použít kdekoli v dialogovém okně Stránky vlastností projektu, kde jsou řetězce přijímány. Tato makra nerozlišují malá a velká písmena.

Zobrazení aktuálních vlastností a maker

Pokud chcete zobrazit všechna aktuálně dostupná makra, otevřete stránky vlastností projektu z hlavní nabídky výběrem možnosti Vlastnosti projektu>. V dialogovém okně Stránky vlastností zvolte položku, která obsahuje makro. Makro můžete rozpoznat pomocí znaku dolaru a závorek, které obklopují jeho název.

V levém podokně například vyberte Adresáře VC++ Vlastnosti>konfigurace a pak v pravém podokně vyberte Zahrnout adresáře. Hodnota adresáře Include je $(VC_IncludePath);$(WindowsSDK_IncludePath);.

Znaménko dolaru a závorky obklopující tyto dvě hodnoty označují, že jde o makra. Rozšíření těchto dvou maker nastaví adresáře zahrnutí, které se mají prohledávat.

Vyberte Zahrnout adresáře a na konci řádku se zobrazí rozevírací seznam. Vyberte rozevírací tlačítko a pak vyberte Upravit. V dialogovém okně Zahrnout adresáře , které se zobrazí, vyberte tlačítko Makra>> .

Tím se dialogové okno rozbalí, aby se zobrazila aktuální sada vlastností a maker viditelných v sadě Visual Studio spolu s aktuální hodnotou pro každou z nich. Další informace naleznete v části Zadání uživatelem definovaných hodnot v odkazu na stránku vlastností projektu C++.

Screenshot of the Visual Studio Include Directories dialog after choosing the Macros button.

Vpravo je seznam maker sady Visual Studio, jako je $(AllowLocalNetworkLoopback). V levém podokně se zobrazuje vyhodnocená hodnota vlastnosti adresáře include. V dolním podokně se zobrazí, která makra se rozbalila, pokud existuje, aby se vytvořila hodnota vlastnosti adresáře include. Vzhledem k tomu, že makro Include Directories je kombinací dvou dalších maker, $(VC_IncludePath) a $(WindowsSDK_IncludePath), v dolním podokně jsou uvedené zděděné hodnoty.

Seznam běžných maker

Tato tabulka popisuje běžně používanou podmnožinu dostupných maker; tam je mnoho dalších, které tu nejsou uvedené. Přejděte do dialogového okna Makra a zobrazte všechny vlastnosti a jejich aktuální hodnoty v projektu. Podrobnosti o tom, jak se definice vlastností MSBuild vytvářejí a používají jako makra v .props.targets, a .vcxproj soubory naleznete v tématu VLASTNOSTI NÁSTROJE MSBuild.

Makro Popis
$(Configuration) Název aktuální konfigurace projektu, například Ladit.
$(DevEnvDir) Instalační adresář sady Visual Studio (definovaný jako jednotka + cesta); obsahuje koncové zpětné lomítko (\).
$(FrameworkDir) Adresář, do kterého byla nainstalována rozhraní .NET Framework.
$(FrameworkSDKDir) Adresář, do kterého jste nainstalovali rozhraní .NET Framework. Rozhraní .NET Framework může být nainstalováno jako součást sady Visual Studio nebo samostatně.
$(FrameworkVersion) Verze rozhraní .NET Framework používaná sadou Visual Studio. V kombinaci s $(FrameworkDir)úplnou cestou k verzi rozhraní .NET Framework, kterou používá Visual Studio.
$(FxCopDir) Cesta k fxcop.cmd souboru. Soubor fxcop.cmd není nainstalovaný ve všech edicích sady Visual Studio.
$(IntDir) Cesta k adresáři určenému pro zprostředkující soubory. Pokud se jedná o relativní cestu, přechodné soubory přejdou na tuto cestu připojenou k adresáři projektu. Tato cesta by měla obsahovat koncové zpětné lomítko (\). Přeloží se na hodnotu vlastnosti Intermediate Directory . Tuto vlastnost nedefinujte.$(OutDir)
$(OutDir) Cesta k adresáři výstupního souboru Pokud se jedná o relativní cestu, výstupní soubory přejdou na tuto cestu připojenou k adresáři projektu. Tato cesta by měla obsahovat koncové zpětné lomítko (\). Přeloží se na hodnotu vlastnosti Výstupní adresář . Tuto vlastnost nedefinujte.$(IntDir)
$(Platform) Název aktuální platformy projektu, například Win32.
$(PlatformShortName) Krátký název aktuální architektury, například "x86" nebo "x64".
$(ProjectDir) Adresář projektu (definovaný jako jednotka + cesta); obsahuje koncové zpětné lomítko (\).
$(ProjectExt) Přípona souboru projektu. Obsahuje "." před příponou souboru.
$(ProjectFileName) Název souboru projektu (definovaný jako základní název + přípona souboru).
$(ProjectName) Základní název projektu.
$(ProjectPath) Absolutní název cesty projektu (definovaný jako jednotka + cesta + základní název + přípona souboru).
$(PublishDir) Výstupní umístění cíle publikování; obsahuje koncové zpětné lomítko (\). Výchozí hodnota $(OutDir)app.publish\ složky.
$(RemoteMachine) Nastavte hodnotu vlastnosti Vzdáleného počítače na stránce vlastnosti Debug. Další informace naleznete v tématu Změna projektu Nastavení pro konfiguraci ladění C/C++.
$(RootNameSpace) Obor názvů, pokud existuje, obsahující aplikaci.
$(SolutionDir) Adresář řešení (definovaný jako jednotka + cesta); obsahuje koncové zpětné lomítko (\). Definováno pouze při vytváření řešení v integrovaném vývojovém prostředí (IDE).
$(SolutionExt) Přípona souboru řešení. Obsahuje "." před příponou souboru. Definováno pouze při vytváření řešení v integrovaném vývojovém prostředí (IDE).
$(SolutionFileName) Název souboru řešení (definovaný jako základní název + přípona souboru). Definováno pouze při vytváření řešení v integrovaném vývojovém prostředí (IDE).
$(SolutionName) Základní název řešení. Definováno pouze při vytváření řešení v integrovaném vývojovém prostředí (IDE).
$(SolutionPath) Absolutní název cesty řešení (definovaný jako jednotka + cesta + základní název + přípona souboru). Definováno pouze při vytváření řešení v integrovaném vývojovém prostředí (IDE).
$(TargetDir) Adresář primárního výstupního souboru pro sestavení (definovaný jako jednotka + cesta); obsahuje koncové zpětné lomítko (\).
$(TargetExt) Přípona souboru primárního výstupního souboru sestavení. Obsahuje "." před příponou souboru.
$(TargetFileName) Název souboru primárního výstupního souboru pro sestavení (definovaný jako základní název + přípona souboru).
$(TargetName) Základní název primárního výstupního souboru sestavení.
$(TargetPath) Absolutní název cesty primárního výstupního souboru pro sestavení (definovaný jako jednotka + cesta + základní název + přípona souboru).
$(VCInstallDir) Adresář, který obsahuje obsah jazyka C++ instalace sady Visual Studio. Tato vlastnost obsahuje verzi cílové sady nástrojů Microsoft C++ (MSVC), která se může lišit od hostitelské sady Visual Studio. Například při sestavování pomocí $(PlatformToolset) = v140, $(VCInstallDir) obsahuje cestu k instalaci sady Visual Studio 2015.
$(VSInstallDir) Adresář, do kterého jste nainstalovali Visual Studio. Tato vlastnost obsahuje verzi cílové sady nástrojů sady Visual Studio, která se může lišit od hostitelské sady Visual Studio. Například při sestavování pomocí $(PlatformToolset) = v110, $(VSInstallDir) obsahuje cestu k instalaci sady Visual Studio 2012.
$(WebDeployPath) Relativní cesta z kořenového adresáře nasazení webu do umístění, kam patří výstupy projektu.
$(WebDeployRoot) Absolutní cesta k umístění .<localhost> Například c:\inetpub\wwwroot.

Zastaralá makra

Systém sestavení pro jazyk C++ se výrazně změnil mezi sadou Visual Studio 2008 a sadou Visual Studio 2010. Mnoho maker použitých v dřívějších typech projektů se změnilo na nová. Tato makra se už nepoužívají nebo jsou nahrazena jednou nebo více ekvivalentními vlastnostmi nebo hodnotami makra%(item-name) metadat položky. Nástroj pro migraci může aktualizovat makra označená jako migrovaná. Pokud je projekt obsahující makro migrován ze sady Visual Studio 2008 nebo starší do sady Visual Studio 2010, převede visual Studio makro na ekvivalentní aktuální makro. Novější verze sady Visual Studio nemůžou převést projekty ze sady Visual Studio 2008 a starší na nový typ projektu. Tyto projekty je nutné převést ve dvou krocích; nejprve je převeďte na Visual Studio 2010 a potom převeďte výsledek na novější verzi sady Visual Studio. Další informace najdete v tématu Přehled potenciálních problémů s upgradem.

Makro Popis
$(InputDir) (Migrováno.) Adresář vstupního souboru (definovaný jako jednotka + cesta); obsahuje koncové zpětné lomítko (\). Pokud je projekt vstupem, je toto makro ekvivalentní $(ProjectDir).
$(InputExt) (Migrováno.) Přípona souboru vstupního souboru. Obsahuje "." před příponou souboru. Pokud je projekt vstupem, je toto makro ekvivalentní $(ProjectExt). U zdrojových souborů je ekvivalentem %(Extension).
$(InputFileName) (Migrováno.) Název vstupního souboru (definovaný jako základní název + přípona souboru). Pokud je projekt vstupem, je toto makro ekvivalentní $(ProjectFileName). U zdrojových souborů je ekvivalentem %(Identity).
$(InputName) (Migrováno.) Základní název vstupního souboru. Pokud je projekt vstupem, je toto makro ekvivalentní $(ProjectName). U zdrojových souborů je ekvivalentem %(Filename).
$(InputPath) (Migrováno.) Absolutní název cesty vstupního souboru (definovaný jako jednotka + cesta + základní název + přípona souboru). Pokud je projekt vstupem, je toto makro ekvivalentní $(ProjectPath). U zdrojových souborů je ekvivalentem %(FullPath).
$(ParentName) Název položky obsahující tuto položku projektu Toto makro je název nadřazené složky nebo název projektu.
$(SafeInputName) Název souboru jako platný název třídy minus přípona souboru. Tato vlastnost nemá přesný ekvivalent.
$(SafeParentName) Název bezprostředně nadřazeného objektu v platném formátu názvu. Formulář je například nadřazený .resx soubor. Tato vlastnost nemá přesný ekvivalent.
$(SafeRootNamespace) Název oboru názvů, do kterého by průvodci projektu měli přidat kód. Tento název oboru názvů obsahuje pouze znaky, které by byly povoleny v platném identifikátoru jazyka C++. Tato vlastnost nemá přesný ekvivalent.

Viz také

Projekty sady Visual Studio – C++
Průvodce portováním a upgradem visual C++
Přehled potenciálních problémů s upgradem
Metadata známých položek nástroje MSBuild