Megosztás:


VCBuild vs. MSBuild: Rendszerváltozások létrehozása a Visual Studio 2010-ben

A C++ projektek MSBuild rendszerét a Visual Studio 2010-ben vezettük be. A Visual Studio 2008-ban és a korábbi kiadásokban a VCBuild rendszert használták. A VCBuildtől függő egyes fájltípusok és fogalmak nem léteznek, vagy eltérően jelennek meg az MSBuildben. Ez a dokumentum az aktuális buildelési rendszer különbségeit ismerteti. Ha egy Visual Studio 2008-projektet MSBuild-nek szeretne átalakítani, a Visual Studio 2010-et kell használnia. A projekt konvertálása után a Visual Studio legújabb verziójával frissítsen az aktuális IDE-re, és hozza létre az eszközöket. További információkért, beleértve a Visual Studio 2010 beszerzésének módját, tekintse meg a Visual Studio 2008 utasításait.

A következő szakaszok összefoglalják a VCBuild és az MSBuild közötti változásokat. Ha a VCBuild projekt olyan egyéni összeállítási szabályokkal vagy makrókkal rendelkezik, amelyeket az MSBuild nem ismer fel, olvassa el a Visual Studio Projects – C++ című témakört, amelyből megtudhatja, hogyan fordíthatja le ezeket az utasításokat az MSBuild rendszerre. A VCBuildről MSBuildre való kezdeti átalakítás csak egy köztes lépés. Nem szükséges, hogy a projektfájl teljesen helyes legyen, vagy hogy a programot hiba nélkül le lehessen fordítani. A projektet csak a Visual Studio 2010 használatával konvertálja MSBuild formátumba, hogy a projekt a Visual Studio legújabb verziójában működjön.

A .vcproj most már .vcxproj

A Project-fájlok már nem használják a .vcproj fájlnévkiterjesztést. A Visual Studio 2010 automatikusan konvertálja a Visual C++ egy korábbi kiadásával létrehozott projektfájlokat MSBuild formátumba, amely a projektfájlok .vcxproj bővítményét használja.

A .vsprops mostantól .props

A Visual Studio 2008-ban és korábbi verzióiban a projekttulajdonságok lapja egy XML-alapú fájl, amely .vsprops fájlnévkiterjesztéssel rendelkezik. A projekttulajdonságok lapja lehetővé teszi, hogy kapcsolókat adjon meg a buildelési eszközökhöz, például a fordítóhoz vagy a linkerhez, és felhasználó által definiált makrókat hozzon létre. Az MSBuildben a projekttulajdonság-lap fájlnévkiterjesztése .props.

Egyéni buildszabályok és .rules fájlok

A Visual Studio 2008-ban és korábbi verzióiban a szabályfájl egy XML-alapú fájl, amely .rules fájlnévkiterjesztéssel rendelkezik. A szabályfájlokkal egyéni buildszabályokat definiálhat, és beépítheti őket egy Visual Studio C++ projekt összeállítási folyamatába. Egy egyéni buildszabály, amely egy vagy több fájlnévkiterjesztéshez társítható, lehetővé teszi, hogy bemeneti fájlokat adjon át egy vagy több kimeneti fájlt létrehozó eszköznek.

Az MSBuild rendszerben az egyéni buildszabályokat a .rules fájl helyett három fájltípus, .xml, .props és .targets jelöli. Ha a Visual C++ egy korábbi kiadásával létrehozott .rules fájl átkerül a Visual Studio 2010-be, a rendszer az eredeti .rules fájllal együtt létrehozza és tárolja a projektben az egyenértékű .xml, .props és .targets fájlokat.

Fontos

A Visual Studio 2010-ben az IDE nem támogatja az új szabályok létrehozását. Ezért a Visual C++ egy korábbi kiadásával létrehozott projekt szabályfájljának legegyszerűbb módja a projekt Visual Studio 2010-be való migrálása.

Öröklési makrók

A Visual Studio 2008-as és korábbi verzióiban az $(Inherit) makró megadja, hogy az örökölt tulajdonságok milyen sorrendben jelenjenek meg a projekt buildelési rendszere által összeállított parancssorban. A $(NoInherit) makró miatt a $(Inherit) előfordulásai figyelmen kívül lesznek hagyva, és az egyébként öröklődő tulajdonságokat nem öröklik. Például, alapértelmezés szerint az $(Inherit) makró ahhoz vezeti, hogy a /I (További tartalmazó könyvtárak) opcióval megadott fájlok hozzáfűződjenek a parancssorhoz.

A Visual Studio 2010-ben az öröklés úgy van támogatva, hogy egy tulajdonság értékét egy vagy több literális érték és tulajdonságmakró összefűzéseként kell megadni. A $(Inherit) és a $(NoInherit) makrók nem támogatottak.

Az alábbi példában egy pontosvesszővel tagolt lista van hozzárendelve egy tulajdonságlapon lévő tulajdonsághoz. A lista az értékkonstans <és a tulajdonság értékének>MyProperty összefűzéséből áll, amely a $(MyProperty) makrójegyzet használatával érhető el.

Property=<value>;$(MyProperty)

.vcxproj.user fájlok

A felhasználói fájlok (.vcxproj.user) felhasználóspecifikus tulajdonságokat tárolnak, például hibakeresési és üzembehelyezési beállításokat. A vcxproj.user fájl egy adott felhasználó összes projektjére vonatkozik.

.vcxproj.filters fájl

Ha a Megoldáskezelővel fájlokat ad hozzá egy projekthez, a szűrők fájlja (.vcxproj.filters) határozza meg, hogy a megoldáskezelő fanézetében hol adja hozzá a fájlt a fájlnévkiterjesztés alapján.

VC++ könyvtárak beállításai

A Visual C++ könyvtárak beállításai a VC++ könyvtárak tulajdonságlapján vannak megadva. A Visual Studio 2008-ban és korábbi verzióiban a címtárak beállításai felhasználónként érvényesek, a kizárt könyvtárak listája pedig a sysincl.dat fájlban van megadva.

A VC++ könyvtárak beállításait nem módosíthatja, ha devenv /resetsettings parancsot futtat a parancssorban. Emellett nem változtathatja meg a beállításokat, ha megnyitja az Eszközök menüt, kattint az Importálás és exportálás beállításai elemre, majd kiválasztja az Összes beállítás alaphelyzetbe állítása lehetőséget.

VC++ könyvtárak beállításainak áttelepítése egy .vssettings fájlból, amelyet a Visual Studio egy korábbi kiadása hozott létre:

  1. Nyissa meg az Eszközök menüt, és kattintson az Importálás és exportálás beállításai parancsra
  2. Válassza a Kijelölt környezet beállításainak importálása lehetőséget
  3. Kövesse a varázsló utasításait.

Lásd még

MSBuild a parancssorban – C++