Práce s vlastnostmi projektu

V integrovaném vývojovém prostředí jsou všechny možnosti kompilátoru, možnosti linkeru, nastavení ladicího programu a vlastní kroky sestavení vystaveny jako vlastnosti.K zobrazení a úpravě vlastností projektu slouží Stránky vlastností.Vlastnosti projektu lze nezávisle na sobě použít v jakékoli kombinaci konfigurace sestavení (ladění nebo vydání) a cílové platformy (Win32, x64 nebo ARM).Můžete také nastavit vlastnosti pro jednotlivé soubory v projektu.

Je možné nastavit rovněž „globální“ vlastnosti podle jednotlivých uživatelů nebo počítačů, nadále to však nedoporučujeme.Namísto toho doporučujeme ve Správci vlastností vytvořit seznam vlastností, kam uložíte nastavení pro každý typ projektu, který chcete opakovaně používat nebo sdílet s ostatními.Seznamy vlastností také pomáhají zajistit, aby nedošlo k neúmyslné změně nastavení vlastností u dalších typů projektů.Podrobněji se seznamům vlastností věnujeme dále v tomto článku.

Chcete-li zobrazit Správce vlastností, zvolte na řádku nabídek možnost Zobrazení, Ostatní okna, Správce vlastností.

Systém projektů jazyka Visual C++ je založen na nástroji MSBuild.Soubory XML projektu a seznamy vlastností můžete upravovat přímo na příkazovém řádku, doporučujeme však použít integrované vývojové prostředí, zejména pokud měníte vlastnosti, které se zapojují do dědičnosti.Ručně upravený soubor, který je platný v nástroji MSBuild, nemusí být nutně čitelný v systému projektu jazyka Visual C++ a můžete v něm do procesu sestavení vnést drobné chyby.

Soubor projektu je soubor XML, který má příponu .vcxproj.Všechny vlastnosti, které jste nastavili v integrovaném vývojovém prostředí, se zapisují přímo do souboru projektu nebo do seznamu vlastností, který se importuje v okamžiku sestavení.

Následující obrázek znázorňuje stránky vlastností projektu jazyka Visual C++.Všimněte si, že v levém podokně je vybráno pravidloAdresáře VC++ a v pravém podokně jsou zobrazeny vlastnosti, které jsou s tímto pravidlem spojeny. (Hodnoty $(...) jsou makra, která probereme dále v tomto článku.) Adresáře VC++ představují vlastnost konfigurace a jejich hodnoty se mohou pro různé konfigurace – například pro ladění a vydání – lišit.V polích se seznamem Konfigurace a Platforma v horní části dialogového okna můžete upravit nastavení konfigurace, ke které se vztahují požadované vlastnosti. V mnoha případech jsou správnou volbou nastavení Všechny platformy a Všechny konfigurace.Nastavení v pravidle Společné vlastnosti se vztahují na všechny konfigurace.

Stránky vlastností projektu

Nastavení vlastností projektu

Následující část obsahuje obecný postup nastavení vlastností projektu:

Nastavení vlastnosti projektu

  1. Na řádku nabídek vyberte možnosti Projekt a Vlastnosti.Případně také můžete v Průzkumníku řešení nebo Správci vlastnosti otevřít místní nabídku projektu a poté zvolit Vlastnosti.Otevře se dialogové okno Stránky vlastností.

  2. V polích v horní části dialogového okna vyberte konfigurace a platformy, ve kterých má být nastavení použito.

    Chcete-li vytvořit nebo upravit konfigurace, které se zobrazují v poli Konfigurace, zvolte tlačítko Správce konfigurace.

  3. Nastavte hodnotu vlastnosti.Tlačítkem OK novou hodnotu zapíšete do souboru projektu.

[!POZNÁMKA]

Dialogové okno Stránky vlastností zobrazuje pouze ty stránky vlastností, které se vztahují k aktuálnímu projektu.Pokud například projekt nemá soubor .idl, stránka s vlastnostmi MIDL se nezobrazí.

Další informace o vlastnostech v dialogovém okně Stránky vlastností:

Tip

Stránku vlastností můžete otevřít přímo zadáním jejího názvu do okna Snadné spuštění.

Pevně zadané vlastnosti a makra

Některé vlastnosti projektu mohou využít jako hodnotu odkaz na vlastnost, která je definována jinde.Tento typ hodnoty se označuje jako makro, aby se odlišil od jiných typů nastavení vlastností projektu.Makro může odkazovat na vlastnost definovanou pomocí systému nástroje MSBuild nebo na vlastnost, kterou jste definovali sami.Použijete-li makra namísto pevně definovaných hodnot, jako jsou například cesty k adresářům, můžete snadněji sdílet nastavení vlastností mezi počítači a mezi verzemi sady Visual Studio a lépe tak zajistit, aby se nastavení projektu řádně zapojilo do dědičnosti vlastností.

  • globální makra
    Platí pro všechny položky v konfiguraci projektu.Má syntaxi $(name).Příkladem globálního makra je $(VCInstallDir), které ukládá kořenový adresář instalace aplikace Visual Studio.Globální makro odpovídá PropertyGroup v nástroji MSBuild.

  • makra položky
    Má syntaxi %(name).U souboru je makro položky platné pouze pro daný soubor – můžete například použít %(AdditionalIncludeDirectories), chcete-li určit adresáře vkládaných souborů, které se vztahují pouze k určitému souboru.Tento druh makra položky odpovídá metadatům ItemGroup v nástroji MSBuild.Pokud se používá v kontextu konfigurace projektu, platí makro položky pro všechny soubory určitého typu.Například vlastnost konfigurace C/C++ Definice preprocesoru umožňuje využít makro položky %(PreprocessorDefinitions), které se vztahuje na všechny soubory .cpp v projektu.Tento druh makra položky odpovídá metadatům ItemDefinitionGroup v nástroji MSBuild.Další informace naleznete v tématu Definice položek.

Makra můžete použít k definování hodnot vlastností. K zobrazení hodnot dostupných maker slouží Editor vlastností.

Editor vlastností

Editor vlastností můžete použít ke změně některých vlastností řetězce a k výběru maker jako hodnot.Editor vlastností otevřete tak, že vyberete vlastnost na stránce vlastností a pak kliknete na šipku dolů na pravé straně.Pokud rozevírací seznam obsahuje možnost <Upravit>, můžete ji vybrat a zobrazit tak Editor vlastností pro danou vlastnost.

Property_Editor_Dropdown

V Editoru vlastností můžete pomocí tlačítka Makra zobrazit dostupná makra a jejich aktuální hodnoty.Následující ilustrace zobrazuje Editor vlastností pro vlastnost Další adresáře vkládaných souborů po výběru tlačítka Makra.Když je vybráno políčko Zdědit z nadřazené hodnoty nebo výchozích hodnot projektu a přidáte novou hodnotu, připojí se ke všem hodnotám, které jsou aktuálně děděny.Pokud zaškrtnutí políčka zrušíte, nahradí nová hodnota zděděné hodnoty.Ve většině případů ponechte políčko zaškrtnuté.

Editor vlastností, Visual C++

Sdílení opakovaně použitelných vlastností konfigurací

Pokud máte běžnou, často používanou sadu vlastností, které chcete použít pro více projektů, můžete je pomocí Správce vlastností zachytit do opakovaně použitelného souboru seznamu vlastností, který má obvykle příponu .props.Seznam (případně více seznamů) lze použít u nových projektů, takže nemusíte nastavovat jejich vlastnosti od začátku.Správce vlastností otevřete tak, že na řádku nabídek zvolíte možnost Zobrazení, Správce vlastností.

Pokud zvolíte možnost Přidat nový seznam vlastností projektu a vyberete například seznam vlastností MyProps.props, zobrazí se dialogové okno stránky vlastností.Všimněte si, že se týká seznamu vlastností MyProps. Jakékoli provedené změny se zapíší do tohoto seznamu, nikoli do souboru projektu (.vcxproj).

Pokud je stejná vlastnost nastavena přímo v souboru .vcxproj, vlastnosti v seznamu vlastností se přepíší.

Seznam vlastností můžete importovat tak často, jak potřebujete.Z jednoho seznamu vlastností může zdědit nastavení více projektů v řešení a projekt může obsahovat více seznamů.Samotný seznam vlastností může zdědit nastavení z jiného seznamu vlastností.

Důležitá poznámkaDůležité

Soubor .props ve výchozím nastavení není součástí řízení zdroje, protože není vytvořen jako položka projektu.Pokud chcete soubor zahrnout do zdrojového kódu, můžete ho přidat ručně jako položku řešení.

Vytvoření seznamu vlastností

  1. Na řádku nabídek zvolte Zobrazení, Správce vlastností.Otevře se Správce vlastností.

  2. Chcete-li definovat rozsah seznamu vlastností, vyberte položku, na kterou se vztahuje.Může se jednat o konkrétní konfiguraci nebo o jiný seznam vlastností.Otevřete místní nabídku pro tuto položku a poté vyberte možnost Přidat nový seznam vlastností projektu.Zadejte název a umístění seznamu.

  3. Ve Správci vlastností otevřete nový seznam vlastností a nastavte vlastnosti, které chcete zahrnout.

Dědičnost vlastností

Vlastnosti projektu jsou rozloženy do vrstev.Každá vrstva zdědí hodnoty předchozí vrstvy, ale zděděné hodnoty lze přepsat explicitním nastavením vlastností.Zde uvádíme základní strom dědičnosti:

  1. Výchozí nastavení ze sady nástrojů MSBuild CPP (..\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props, tj. soubor importovaný souborem .vcxproj.)

  2. Seznamy vlastností

  3. Soubor .vcxproj. (Může přepsat výchozí nastavení a nastavení seznamu vlastností.)

  4. Metadata položek

Tip

Na stránce vlastností je vlastnost s funkcí bold definována v aktuálním kontextu.Vlastnost uvedená normálním písmem je zděděná.

Soubor projektu (.vcxproj) importuje v okamžiku sestavení další seznamy vlastností.Po importu všech seznamů vlastností je soubor projektu vyhodnocen a pro všechny hodnoty vlastností se použije jejich poslední definice.Někdy je užitečné zobrazit rozbalený soubor, ve kterém zjistíte, jak je hodnota dané vlastnosti zděděna.Rozbalenou verzi zobrazíte zadáním následujícího příkazu na příkazovém řádku Visual Studio. (Podle potřeby zaměňte zástupné symboly názvy souborů, které chcete použít.)

msbuild /pp:temp.txtmyapp**.vcxproj**

Rozbalené soubory projektů mohou být velké a náročné na orientaci, pokud dobře neznáte nástroj MSBuild.Zde uvádíme základní strukturu souboru projektu:

  1. Základní vlastnosti projektu, které nejsou vystaveny v integrovaném vývojovém prostředí

  2. Import souboru Microsoft.cpp.default.props, který definuje některé základní vlastnosti nezávislé na sadách nástrojů

  3. Vlastnosti globální konfigurace (zobrazené jako výchozí vlastnosti PlatformToolset a Projekt na stránce Obecná konfigurace).Tyto vlastnosti určují, která sada nástrojů a vnitřní seznamy vlastností se importují v souboru Microsoft.cpp.props v dalším kroku.

  4. Import souboru Microsoft.cpp.props, který nastaví většinu výchozích hodnot projektu

  5. Import všech seznamů vlastností, včetně souborů .user.Tyto seznamy vlastností mohou přepsat vše kromě výchozích vlastností PlatformToolset a Projekt.

  6. Zbývající vlastnosti konfigurace projektuTyto hodnoty mohou přepsat nastavení provedená v seznamu vlastností.

  7. Položky (soubory) spolu s příslušnými metadaty.Ty v pravidlech vyhodnocování MSBuild vždy dostanou prioritu, i když se vyskytují před dalšími vlastnostmi a importy.

Další informace naleznete v tématu Vlastnosti nástroje MSBuild.

Soubory .user – proč jsou problematické

Dřívější verze sady Visual Studio používaly globální seznamy vlastností, které měly příponu .user a byly umístěny ve složce <userprofile>\AppData\Local\Microsoft\MSBuild\v4.0\.Použití těchto souborů již nedoporučujeme, protože nastavují vlastnosti konfigurace projektu pro jednotlivé uživatele a počítače.Taková „globální“ nastavení mohou narušovat sestavení, zvláště když v sestavovacím počítači cílíte na více platforem.Pokud například máte projekt na platformě MFC i na platformě Windows Phone, vlastnosti v seznamu .user budou pro jeden z těchto projektů neplatné.Opakovaně použitelné seznamy vlastností jsou pružnější a odolnější.

Přestože soubory .user se v sadě Visual Studio stále instalují a účastní se dědění vlastností, jsou ve výchozím nastavení prázdné.Nejlepším postupem je odstranit odkazy na ně ve Správci vlastností, abyste zajistili, že projekty budou fungovat nezávisle na jakémkoli nastavení konkrétního uživatele či počítače. To je důležité k zajištění správného chování v prostředí SCC (řízení zdrojového kódu).

Přidání adresáře vkládaných souborů do sady výchozích adresářů

Přidáváte-li do projektu adresář vkládaných souborů, je důležité, abyste nepřepsali všechny výchozí adresáře.Správný způsob přidání adresáře je připojit novou cestu, například "C:\MyNewIncludeDir\", a potom připojit k hodnotě vlastnosti makro $(IncludePath).

Vytvoření uživatelem definovaného makra

Můžete vytvářet uživatelem definovaná makra, která lze použít jako proměnné v sestaveních projektů.Můžete například vytvořit uživatelem definované makro poskytující hodnotu pro vlastní krok sestavení nebo pro vlastní nástroj sestavení.Uživatelem definované makro je pár název/hodnota.V souboru projektu použijte pro přístup k hodnotě notaci $(name).

Uživatelem definované makro je uloženo v seznamu vlastností.Pokud projekt zatím neobsahuje seznam vlastností, můžete ho vytvořit pomocí postupu uvedeného dříve v tomto článku.

Vytvoření uživatelem definovaného makra

  1. Ve Správci vlastností (na řádku nabídek zvolte položky Zobrazení, Správce vlastností) otevřete místní nabídku seznamu vlastností (jeho název má koncovku .user) a zvolte možnost Vlastnosti.Otevře se dialogové okno Stránky vlastností pro tento seznam vlastností.

  2. V levém podokně dialogového okna vyberte možnost Uživatelská makra.Kliknutím na tlačítko Přidat makro v pravém podokně otevřete dialogové okno Přidat uživatelské makro.

  3. V dialogovém okně zadejte název a hodnotu makra.Můžete také zaškrtnout políčko Nastavit toto makro jako proměnnou prostředí v prostředí pro sestavení.

Nastavení proměnných prostředí pro sestavení

Kompilátor Visual C++ (cl.exe) rozpoznává určité proměnné prostředí, konkrétně LIB, LIBPATH, PATH a INCLUDE.Při tvorbě sestavení v integrovaném vývojovém prostředí slouží k nastavení těchto proměnných prostředí vlastnosti, které jsou nastaveny na stránce vlastností Stránka vlastností adresářů VC++.Pokud jsou hodnoty proměnných LIB, LIBPATH a INCLUDE již nastaveny, například pomocí příkazového řádku pro vývojáře, nahradí se hodnotami odpovídajících vlastností MSBuild.Sestavení poté připojí k proměnné PATH hodnotu vlastnosti spustitelných adresářů Adresáře VC++.Uživatelem definovanou proměnnou prostředí můžete nastavit tak, že vytvoříte uživatelem definované makro a potom zaškrtnete políčko Nastavit toto makro jako proměnnou prostředí v prostředí pro sestavení.

Nastavení proměnných prostředí pro relaci ladicího programu

V levém podokně dialogového okna Stránky vlastností projektu rozbalte nabídku Vlastnosti konfigurace a poté vyberte možnost Ladění.

V pravém podokně upravte nastavení projektu Prostředí nebo Sloučit prostředí a potvrďte tlačítkem OK.

Zobrazení všech maker a jejich hodnot

V dialogovém okně Stránky vlastností projektu vyberte řetězcovou vlastnost, jako například Adresáře VC++, klikněte na tlačítko se šipkou dolů v pravém sloupci a poté příkazem <Upravit> otevřete dialogové okno Editor vlastností.V Editoru vlastností klikněte na tlačítko Makra.

Nastavení vlastností pro více konfigurací současně

Chcete-li nastavit vlastnosti pro všechny konfigurace, vyberte v polích v horní části dialogového okna Stránky vlastností projektu možnost Všechny konfigurace a Všechny platformy a poté nastavte požadované vlastnosti.

Pokud chcete nastavit vlastnosti pouze pro některé konfigurace, vyberte je ve Správci vlastností a pak otevřete místní nabídku a zvolte možnost Vlastnosti.Jakékoli změny v nastaveních se použijí ve všech vybraných konfiguracích.

Můžete také vytvořit jeden seznam vlastností pro více konfigurací.Chcete-li to udělat, vytvořte seznam vlastností pro každou konfiguraci, otevřete místní nabídku pro jednu z nich, zvolte možnost Přidat existující seznam vlastností a poté přidejte další seznamy vlastností.Pokud však používáte jeden společný seznam vlastností, nezapomeňte, že nastavená vlastnost se použije ve všech konfiguracích, ke kterým se seznam vztahuje, a že integrované vývojové prostředí neuvádí, které projekty nebo jiné seznamy vlastností z daného seznamu vlastností dědí.

V rozsáhlých řešeních, která budou obsahovat mnoho projektů, může být užitečné vytvořit seznam vlastností na úrovni řešení.Přidáte-li do řešení projekt, pomocí Správce vlastností do něj přidejte tento seznam vlastností.Pokud je to nutné na úrovni projektu, můžete přidat nový seznam vlastností, kterým se nastaví hodnoty specifické pro projekt.

Rychlé procházení všech možností a vyhledávání v nich

Stránka vlastností Všechny možnosti (pod uzlem C/C++ v levém podokně dialogového okna Stránky vlastností) nabízí možnost rychlého procházení a vyhledávání vlastností, které jsou k dispozici v aktuálním kontextu.Obsahuje speciální vyhledávací pole s jednoduchou syntaxí umožňující filtrovat výsledky:

  • Bez předpony:
    Prohledávat pouze názvy vlastností (podřetězec bez rozlišení velkých a malých písmen)

  • '/' nebo '-':
    Prohledávat pouze přepínače kompilátoru (předpona nerozlišující velká a malá písmena)

  • v:
    Prohledávat pouze hodnoty (podřetězec bez rozlišení velkých a malých písmen)

Viz také

Další zdroje

Tvorba a správa projektů v prostředí Visual C++