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.
Amikor beállítja a projekt tulajdonságait az IDE-ben, majd menti a projektet, a Visual Studio a projektbeállításokat a projektfájlba írja. A projektfájl a projekthez egyedi beállításokat tartalmaz. Ez azonban nem tartalmazza a projekt létrehozásához szükséges összes beállítást. A projektfájl olyan elemeket tartalmaz Import , amelyek további támogatási fájlokat tartalmazó hálózatot tartalmaznak. A támogatási fájlok tartalmazzák a projekt létrehozásához szükséges további tulajdonságokat, célokat és beállításokat.
A támogatási fájlokban található legtöbb cél és tulajdonság kizárólag a buildelési rendszer implementálásához létezik. Ez a cikk az MSBuild parancssorban megadható hasznos célokat és tulajdonságokat ismerteti. Ha további célokat és tulajdonságokat szeretne felderíteni, tekintse át a támogatási fájlkönyvtárakban található fájlokat.
Támogatási fájlkönyvtárak
Alapértelmezés szerint az elsődleges Visual Studio-támogatási fájlok a következő könyvtárakban találhatók. Ezek az információk verzióspecifikusak.
Visual Studio 2022 és 2019
%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\A célok által használt elsődleges célfájlokat (
.targets) és tulajdonságfájlokat (.props) tartalmazza. A makró alapértelmezés szerint erre a$(VCTargetsPath)könyvtárra hivatkozik. A<version>helyőrző a Visual Studio 2022 v170-es verziójára, a Visual Studio 2019 v160-ra vagy a Visual Studio 2017 v150-es verziójára hivatkozik.%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\Platforms\<platform>\Platformspecifikus cél- és tulajdonságfájlokat tartalmaz, amelyek felülbírálják a célokat és tulajdonságokat a szülőkönyvtárban. Ez a könyvtár egy DLL-t is tartalmaz, amely meghatározza a címtárban lévő célok által használt feladatokat. A
<platform>helyőrző az ARM, ARM64, Win32 vagy x64 alkönyvtárat jelöli.%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\Platforms\<platform>\PlatformToolsets\<toolset>\Tartalmazza azokat a könyvtárakat, amelyek lehetővé teszik a build számára, hogy C++ alkalmazásokat hozzon létre a megadott
<toolset>használatával. A<platform>helyőrző az ARM, ARM64, Win32 vagy x64 alkönyvtárat jelöli. A<toolset>helyőrző az eszközkészlet alkönyvtárát jelöli.
Visual Studio 2017
%VSINSTALLDIR%Common7\IDE\VC\VCTargets\A célok által használt elsődleges célfájlokat (
.targets) és tulajdonságfájlokat (.props) tartalmazza. A makró alapértelmezés szerint erre a$(VCTargetsPath)könyvtárra hivatkozik.%VSINSTALLDIR%Common7\IDE\VC\VCTargets\Platforms\<platform>\Platformspecifikus cél- és tulajdonságfájlokat tartalmaz, amelyek felülbírálják a célokat és tulajdonságokat a szülőkönyvtárban. Ez a könyvtár egy DLL-t is tartalmaz, amely meghatározza a címtárban lévő célok által használt feladatokat. A
<platform>helyőrző az ARM, ARM64, Win32 vagy x64 alkönyvtárat jelöli.%VSINSTALLDIR%Common7\IDE\VC\VCTargets\Platforms\<platform>\PlatformToolsets\<toolset>\Tartalmazza azokat a könyvtárakat, amelyek lehetővé teszik a build számára, hogy C++ alkalmazásokat hozzon létre a megadott
<toolset>használatával. A<platform>helyőrző az ARM, Win32 vagy x64 alkönyvtárat jelöli. A<toolset>helyőrző az eszközkészlet alkönyvtárát jelöli.
Visual Studio 2015 és korábbi verziók
<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\A célok által használt elsődleges célfájlokat (
.targets) és tulajdonságfájlokat (.props) tartalmazza. A $(VCTargetsPath) makró alapértelmezés szerint erre a könyvtárra hivatkozik.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\Platforms\<platform>\Platformspecifikus cél- és tulajdonságfájlokat tartalmaz, amelyek felülbírálják a célokat és tulajdonságokat a szülőkönyvtárban. Ez a könyvtár egy DLL-t is tartalmaz, amely meghatározza a címtárban lévő célok által használt feladatokat. A
<platform>helyőrző az ARM, Win32 vagy x64 alkönyvtárat jelöli.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\Platforms\<platform>\PlatformToolsets\<toolset>\Tartalmazza azokat a könyvtárakat, amelyek lehetővé teszik a build számára, hogy C++ alkalmazásokat hozzon létre a megadott
<toolset>használatával. A<version>helyőrző a Visual Studio 2012 V110, a Visual Studio 2013 V120 és a Visual Studio 2015 V140. A<platform>helyőrző az ARM, Win32 vagy x64 alkönyvtárat jelöli. A<toolset>helyőrző az eszközkészlet alkönyvtárát jelöli. Ez például a Windows-alkalmazások Visual Studio 2015-ös eszközkészlet használatával történő létrehozásához készült 140-et. Vagy v120_xp Windows XP-hez a Visual Studio 2013-eszközkészlet használatával történő buildeléshez.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\Platforms\<platform>\PlatformToolsets\<toolset>\A Visual Studio 2008- vagy Visual Studio 2010-alkalmazások létrehozásához a buildet engedélyező elérési utak nem tartalmazzák a
<version>. Ezekben a verziókban a<platform>helyőrző az Itanium, a Win32 vagy az x64 alkönyvtárat jelöli. A<toolset>helyőrző a v90 vagy v100 eszközkészlet alkönyvtárát jelöli.
Támogatási fájlok
A támogatási fájlkönyvtárak az alábbi kiterjesztésű fájlokat tartalmazzák:
| Extension | Description |
|---|---|
.targets |
A cél által végrehajtott feladatokat meghatározó XML-elemeket tartalmaz Target . Tartalmazhat olyan PropertyGroup, ItemGroup, ItemDefinitionGroupés felhasználó által definiált Item elemeket is, amelyek fájlok és parancssori beállítások feladatparaméterekhez való hozzárendeléséhez használhatók.További információ: Target Elem (MSBuild). |
.props |
A build során használt fájl- és paraméterbeállításokat meghatározó, felhasználó által definiált Property XML-elemeket tartalmazProperty Group.Tartalmazhat és felhasználó által definiált Item XML-elemeket isItemDefinitionGroup, amelyek további beállításokat ad meg. Az elemdefiníciós csoportban definiált elemek hasonlítanak a tulajdonságokra, de nem érhetők el a parancssorból. A Visual Studio-projektfájlok gyakran tulajdonságok helyett elemeket használnak a beállítások megjelenítéséhez.További információ: ItemGroup Elem (MSBuild), ItemDefinitionGroup Elem (MSBuild) és Item Elem (MSBuild). |
.xml |
AZ IDE felhasználói felület elemeit deklaráló és inicializáló XML-elemeket tartalmaz. Ilyenek például a tulajdonságlapok, a tulajdonságlapok, a szövegdoboz-vezérlők és a listamező-vezérlők. A .xml fájlok közvetlenül az IDE-t támogatják, nem az MSBuildet. Az IDE-tulajdonságok értékei azonban hozzá vannak rendelve a buildtulajdonságokhoz és az elemekhez.A fájlok többsége .xml területileg meghatározott alkönyvtárban található. A English-US régió fájljai például a következő helyen $(VCTargetsPath)\1033\találhatók: . |
Felhasználói célok és tulajdonságok
Az MSBuild hatékony használatához segít tudni, hogy mely tulajdonságok és célok hasznosak és relevánsak. A legtöbb tulajdonság és cél a Visual Studio buildrendszer implementálásában segít, és nem releváns a felhasználó számára. Ez a szakasz a felhasználó-orientált tulajdonságokat és célokat ismerteti, amelyekről érdemes tudni.
PlatformToolset ingatlan
A PlatformToolset tulajdonság határozza meg, hogy melyik Microsoft C++ (MSVC) eszközkészletet használja a build. Alapértelmezés szerint a rendszer az aktuális eszközkészletet használja. Ha ez a tulajdonság be van állítva, az értéke konstans sztringekkel lesz összefűzve az elérési út létrehozásához. Ez a könyvtár tartalmazza azokat a tulajdonság- és célfájlokat, amelyek egy adott platform projektjének létrehozásához szükségesek. A platformeszközkészletet telepíteni kell a platformeszközök verziójának használatával történő buildeléshez.
Állítsa be például a tulajdonságot úgy, hogy v140 Visual PlatformToolset Studio 2015-eszközöket és kódtárakat használjon az alkalmazás létrehozásához:
msbuild myProject.vcxproj /p:PlatformToolset=v140
PreferredToolArchitecture ingatlan
A PreferredToolArchitecture tulajdonság határozza meg, hogy a 32 bites vagy a 64 bites fordító és az eszközök használhatók-e a buildben. Ez a tulajdonság nem befolyásolja a kimeneti platform architektúráját vagy konfigurációját. Alapértelmezés szerint az MSBuild a fordító x86-os verzióját és eszközeit használja, ha ez a tulajdonság nincs beállítva.
Állítsa be például a PreferredToolArchitecture tulajdonságot úgy, hogy x64 a 64 bites fordítót és eszközöket használja az alkalmazás létrehozásához:
msbuild myProject.vcxproj /p:PreferredToolArchitecture=x64
UseEnv ingatlan
Alapértelmezés szerint az aktuális projekt platformspecifikus beállításai felülírják a PATH, INCLUDE, LIB, , LIBPATHCONFIGURATION, és PLATFORM környezeti változókat. Állítsa be a UseEnv tulajdonságot true úgy, hogy a környezeti változók ne legyenek felülírva.
msbuild myProject.vcxproj /p:UseEnv=true
Targets
A Visual Studio támogatási fájljaiban több száz cél található. A legtöbb azonban rendszerközpontú cél, amelyet a felhasználó figyelmen kívül hagyhat. A rendszerpéldányok többsége aláhúzásjel (_) előtaggal rendelkezik, vagy olyan névvel rendelkezik, amely a következővel PrepareForkezdődik: , Compute, Before, After, Prevagy Post.
Az alábbi táblázat számos hasznos felhasználó-orientált célt sorol fel.
| Target | Description |
|---|---|
BscMake |
Végrehajtja a Microsoft Browse Information Maintenance Segédprogramot. bscmake.exe |
Build |
Létrehozza a projektet. Ez a cél az alapértelmezett projekt. |
ClCompile |
Végrehajtja az MSVC fordítóeszközt. cl.exe |
Clean |
Ideiglenes és köztes buildfájlokat töröl. |
Lib |
Végrehajtja a Microsoft 32 bites Könyvtárkezelő eszközt. lib.exe |
Link |
Végrehajtja az MSVC linker eszközt. link.exe |
ManifestResourceCompile |
Kinyeri az erőforrások listáját egy jegyzékből, rc.exemajd végrehajtja a Microsoft Windows Resource Compiler eszközt. |
Midl |
Végrehajtja a Microsoft Interface Definition Language (MIDL) fordítóeszközt. midl.exe |
Rebuild |
Megtisztítja, majd létrehozza a projektet. |
ResourceCompile |
Végrehajtja a Microsoft Windows Resource Compiler eszközt. rc.exe |
XdcMake |
Végrehajtja az XML-dokumentációs eszközt. xdcmake.exe |
Xsd |
Végrehajtja az XML-sémadefiníciós eszközt. xsd.exe
Lásd a megjegyzést. |
Megjegyzés:
A Visual Studio 2017-ben és újabb verzióiban a C++ projekt támogatása .xsd elavult. Továbbra is használhatja Microsoft.VisualC.CppCodeProvider manuálisan a GAC-hoz való hozzáadással CppCodeProvider.dll .
Lásd még
MSBuild tevékenységhivatkozás
BscMake feladat
CL feladat
CPPClean feladat
LIB feladat
Link feladat
MIDL feladat
MT feladat
RC feladat
SetEnv feladat
VCMessage feladat
XDCMake feladat