Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az útmutató bemutatja, hogyan használható az MSBuild egy parancssorban Egy Visual Studio C++ projekt létrehozásához. Megtudhatja, hogyan hozhat létre XML-alapú .vcxproj projektfájlt egy C++ konzolalkalmazáshoz. A projekt létrehozása után megtanulhatja, hogyan szabhatja testre a buildelési folyamatot.
Fontos
Ne használja ezt a módszert, ha később szeretné szerkeszteni a projektfájlt a Visual Studio IDE használatával. Ha manuálisan hoz létre .vcxproj fájlt, előfordulhat, hogy a Visual Studio IDE nem tudja szerkeszteni vagy betölteni, különösen akkor, ha a projekt helyettesítő karaktereket használ a projektelemekben. További információ: .vcxproj és .props fájlstruktúra és .vcxproj fájlok és helyettesítő karakterek.
Ez az útmutató a következő feladatokat szemlélteti:
- A projekt C++ forrásfájljainak létrehozása.
- Az XML MSBuild projektfájl létrehozása.
- Az MSBuild használata a projekt létrehozásához.
- Az MSBuild használata a projekt testreszabásához.
Előfeltételek
Az útmutató elvégzéséhez az alábbi előfeltételek szükségesek:
- A Visual Studio egy példánya a C++ asztali fejlesztés munkaterheléssel telepítve.
- Az MSBuild rendszer általános ismerete.
Jegyzet
Az alacsony szintű buildelési utasítások többsége a .targets és .props fájlokban található, amelyek az alapértelmezett célmappában vannak definiálva, és amelyek a $(VCTargetsPath)tulajdonságban vannak tárolva. Itt talál olyan fájlokat, mint a Microsoft.Cpp.Common.props. Ezen fájlok alapértelmezett elérési útja a Visual Studio 2015-ben és a korábbi verziókban a %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\alatt található.
Jegyzet
Az alacsony szintű buildelési utasítások többsége a .targets és .props fájlokban található, amelyek az alapértelmezett célmappában vannak definiálva, és amelyek a $(VCTargetsPath)tulajdonságban vannak tárolva. Itt talál olyan fájlokat, mint a Microsoft.Cpp.Common.props. Ezeknek a fájloknak az alapértelmezett elérési útja a Visual Studio 2017-ben a %VSINSTALLDIR%Common7\IDE\VC\VCTargets\alatt található. A Visual Studio 2015 és korábbi verziói a %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\alatt tárolták őket.
Jegyzet
Az alacsony szintű buildelési utasítások többsége a .targets és .props fájlokban található, amelyek az alapértelmezett célmappában vannak definiálva, és amelyek a $(VCTargetsPath)tulajdonságban vannak tárolva. Itt talál olyan fájlokat, mint a Microsoft.Cpp.Common.props. Ezeknek a fájloknak az alapértelmezett elérési útja a %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\alatt található. A <version> elérési út eleme a Visual Studio verziójára jellemző. A v160 a Visual Studio 2019-hez kapcsolódik. A Visual Studio 2017 ezeket a fájlokat a %VSINSTALLDIR%Common7\IDE\VC\VCTargets\alatt tárolta. A Visual Studio 2015 és korábbi verziói a %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\alatt tárolták őket.
A C++ forrásfájlok létrehozása
Ebben az útmutatóban egy forrásfájllal és fejlécfájllal rendelkező projektet fog létrehozni. A forrásfájl main.cpp tartalmazza a konzolalkalmazás main függvényét. A fejlécfájl main.h tartalmazza a <iostream> fejlécfájlt tartalmazó kódot. Ezeket a C++ fájlokat a Visual Studióval vagy egy szövegszerkesztővel, például a Visual Studio Code-tal hozhatja létre.
A projekt C++ forrásfájljainak létrehozása
Hozzon létre egy mappát a projekthez.
Hozzon létre egy
main.cppnevű fájlt, és adja hozzá ezt a kódot a fájlhoz:// main.cpp : the application source code. #include <iostream> #include "main.h" int main() { std::cout << "Hello, from MSBuild!\n"; return 0; }Hozzon létre egy
main.hnevű fájlt, és adja hozzá ezt a kódot a fájlhoz:// main.h: the application header code. /* Additional source code to include. */
Az XML MSBuild projektfájl létrehozása
Az MSBuild projektfájl olyan XML-fájl, amely egy projekt gyökérelemét (<Project>) tartalmazza. A felépíteni kívánt példaprojektben a <Project> elem hét gyermekelemet tartalmaz:
- Három elemcsoportcímke (
<ItemGroup>), amelyek megadják a projektkonfigurációt és a platformot, a forrásfájl nevét és a fejlécfájl nevét. - Három importálási címke (
<Import>) adja meg a Microsoft C++ beállításainak helyét. - A projektbeállításokat meghatározó tulajdonságcsoportcímke (
<PropertyGroup>).
Az MSBuild projektfájl létrehozása
Szövegszerkesztővel hozzon létre egy
myproject.vcxprojnevű projektfájlt, majd adja hozzá az itt látható gyökér<Project>elemet. (HasználjaToolsVersion="14.0"a Visual Studio 2015-öt,ToolsVersion="15.0"a Visual Studio 2017-et,ToolsVersion="16.0"a Visual Studio 2019-et vagyToolsVersion="17.0"a Visual Studio 2022-et.)<Project DefaultTargets="Build" ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> </Project>Szúrja be az elemeket a következő eljárás lépéseibe a gyökér
<Project>címkék között.Adja hozzá ezt a két
<ProjectConfiguration>gyermekelemet egy<ItemGroup>elemhez. A gyermekelem egy 32 bites Windows operációs rendszer hibakeresési és kiadási konfigurációit adja meg:<ItemGroup> <ProjectConfiguration Include="Debug|Win32"> <Configuration>Debug</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> <ProjectConfiguration Include="Release|Win32"> <Configuration>Release</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> </ItemGroup>Adjon hozzá egy
<Import>elemet, amely meghatározza a projekt alapértelmezett C++ beállításainak elérési útját:<Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />Adjon hozzá egy tulajdonságcsoportelemet (
<PropertyGroup>), amely két projekttulajdonságot,<ConfigurationType>és<PlatformToolset>határoz meg. (A Visual Studio 2015 használata esetén használja av140<PlatformToolset>értéket, a Visual Studio 2017 használata eseténv141, a Visual Studio 2019 vagy a Visual Studio 2022 használata eseténv142v143.)<PropertyGroup> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v143</PlatformToolset> </PropertyGroup>Adjon hozzá egy
<Import>elemet, amely meghatározza a projekt aktuális C++ beállításainak elérési útját:<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />Adjon hozzá egy
<ClCompile>gyermekelemet egy<ItemGroup>elemhez. A gyermekelem a lefordítandó C/C++ forrásfájl nevét adja meg:<ItemGroup> <ClCompile Include="main.cpp" /> </ItemGroup>Jegyzet
<ClCompile>egy build-cél, és az alapértelmezett célok mappájában van definiálva.Adjon hozzá egy
<ClInclude>gyermekelemet egy<ItemGroup>elemhez. A gyermekelem a C/C++ forrásfájl fejlécfájljának nevét adja meg:<ItemGroup> <ClInclude Include="main.h" /> </ItemGroup>Adjon hozzá egy
<Import>elemet, amely meghatározza a projekt célját meghatározó fájl elérési útját:<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
Projektfájl befejezése
Ez a kód az előző eljárásban létrehozott teljes projektfájlt jeleníti meg. (A Visual Studio 2017 ToolsVersion=16.0 for Visual Studio 2019, ToolsVersion="15.0" vagy a Visual Studio 2015 ToolsVersion="14.0" használata.)
<Project DefaultTargets="Build" ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
<PropertyGroup>
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ItemGroup>
<ClCompile Include="main.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="main.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
</Project>
Az MSBuild használata a projekt létrehozásához
Adja meg ezt a parancsot a parancssorban a konzolalkalmazás létrehozásához:
msbuild myproject.vcxproj /p:configuration=debug
Az MSBuild létrehoz egy mappát a kimeneti fájlokhoz, majd lefordítja és összekapcsolja a projektet a Myproject.exe program létrehozásához. A létrehozási folyamat befejezése után ezzel a paranccsal futtassa az alkalmazást a hibakeresési mappából:
myproject
Az alkalmazásnak a konzolablakban ezt kell megjelenítenie: "Hello, from MSBuild!"
A projekt testreszabása
Az MSBuild lehetővé teszi előre meghatározott buildcélok végrehajtását, felhasználó által definiált tulajdonságok alkalmazását, valamint egyéni eszközök, események és buildelési lépések használatát. Ez a szakasz a következő feladatokat mutatja be:
- Az MSBuild használata buildcélokkal.
- Az MSBuild használata a buildtulajdonságokkal.
- Az MSBuild használata a 64 bites fordítóval és az eszközökkel.
- Az MSBuild használata különböző eszközkészletekkel.
- MSBuild testreszabások hozzáadása.
Az MSBuild használata építési célokkal
A buildcél előre definiált vagy felhasználó által definiált parancsok nevesített készlete, amelyek a buildelés során végrehajthatók. A buildcél megadásához használja a cél parancssori opciót (/t). A myproject példaprojekt esetében az előre definiált clean cél törli a hibakeresési mappában lévő összes fájlt, és létrehoz egy új naplófájlt.
A parancssorba írja be ezt a parancsot a myprojecttisztításához:
msbuild myproject.vcxproj /t:clean
Az MSBuild használata építési tulajdonságokkal
A tulajdonság parancssori beállításával (/p) felülbírálhat egy tulajdonságot a projekt buildfájljában. A myproject példaprojektben a kiadási vagy hibakeresési buildkonfigurációt a Configuration tulajdonság határozza meg. A beépített alkalmazás futtatásához használt operációs rendszert a Platform tulajdonság határozza meg.
A parancssorba írja be ezt a parancsot a myproject alkalmazás hibakeresési buildjének létrehozásához, amely 32 bites Windows rendszeren fut:
msbuild myproject.vcxproj /p:configuration=debug /p:platform=win32
Tegyük fel, hogy a myproject példaprojekt a 64 bites Windows konfigurációját, valamint egy másik konfigurációt is definiál egy myplatformnevű egyéni operációs rendszerhez.
A parancssorba írja be ezt a parancsot egy 64 bites Windows rendszeren futó kiadási build létrehozásához:
msbuild myproject.vcxproj /p:configuration=release /p:platform=x64
A parancssorban írja be ezt a parancsot egy kiadási verzió létrehozásához myplatform:
msbuild myproject.vcxproj /p:configuration=release /p:platform=myplatform
Az MSBuild használata a 64 bites fordítóval és eszközökkel
Ha a Visual Studio 64 bites Windows rendszeren van telepítve, a 64 bites x64 natív és kereszteszközök alapértelmezés szerint telepítve vannak. A PreferredToolArchitecture tulajdonság beállításával konfigurálhatja az MSBuildet úgy, hogy a 64 bites fordítót és eszközöket használja az alkalmazás létrehozásához. Ez a tulajdonság nem befolyásolja a projektkonfigurációt vagy a platform tulajdonságait. Alapértelmezés szerint a rendszer az eszközök 32 bites verzióját használja. A fordító és az eszközök 64 bites verziójának megadásához adja hozzá ezt a tulajdonságcsoportelemet a Myproject.vcxproj projektfájlhoz a Microsoft.Cpp.default.props fájl <Import /> elem után:
<PropertyGroup>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
Írja be a következő parancsot a parancssorba az alkalmazása 64 bites eszközökkel történő fordításához:
msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64
Az MSBuild használata egy másik eszközkészlettel
Ha telepítve vannak a Microsoft C++ (MSVC) más verzióihoz szükséges eszközkészletek és kódtárak, az MSBuild az aktuális MSVC-verzióhoz vagy a többi telepített verzióhoz is létrehozhat alkalmazásokat. Ha például telepítette a Visual Studio 2012-t, a Windows XP Visual C++ 11.0 eszközkészletének megadásához adja hozzá ezt a tulajdonságcsoportelemet a Myproject.vcxproj projektfájlhoz a Microsoft.Cpp.props fájl <Import /> elem után:
<PropertyGroup>
<PlatformToolset>v110_xp</PlatformToolset>
</PropertyGroup>
Ha újra szeretné építeni a projektet a Visual C++ 11.0 Windows XP-eszközkészlettel, írja be a következő parancsot:
msbuild myproject.vcxproj /p:PlatformToolset=v110_xp /t:rebuild
MSBuild testreszabások hozzáadása
Az MSBuild különböző módszereket kínál a buildelési folyamat testreszabására. Ezek a cikkek bemutatják, hogyan adhat hozzá egyéni buildelési lépéseket, eszközöket és eseményeket az MSBuild projekthez:
- Útmutató: Egyéni buildelési lépés hozzáadása az MSBuild-projektekhez
- Útmutató: Egyéni buildeszközök hozzáadása az MSBuild-projektekhez
- Útmutató: Buildesemények használata az MSBuild-projektekben