Praca z właściwościami projektu
W IDE, wszystkie opcje kompilatora, opcje konsolidatora, ustawienia debugera i niestandardowe kroki kompilacji są dostępne jako Właściwości.Użyj stron właściwości projektu do przeglądania i modyfikowania jego właściwości.Właściwości projektu można stosować niezależnie do dowolnej kombinacji konfiguracji kompilacji (debugowanie lub wydanie) i platformy docelowej (Win32, x64 lub ARM).Można również ustawić właściwości dla poszczególnych plików w projekcie.
Chociaż możesz ustawiać właściwości „globalne” dla poszczególnych użytkowników i komputerów, nie zalecamy tego.Zamiast tego zaleca się używanie Menedżera właściwości do tworzenia arkusza właściwości, aby przechowywać ustawienia dla każdego rodzaju projektu, przy którym chcesz mieć możliwość ponownego użycia lub udostępnienia innym osobom.Arkusze właściwości również sprawiają, że jest mniej prawdopodobne, że ustawienia właściwości dla innych typów projektów zostaną przypadkowo zmienione.Arkusze właściwości są szczegółowo omówione w dalszej części tego artykułu.
Aby wyświetlić okno Menedżera właściwości, na pasku menu wybierz pozycję Widok, Inne okna, Menedżer właściwości.
System projektów języka Visual C++ opiera się na platformie MSBuild.Chociaż masz możliwość edytowania plików XML projektu i arkuszy właściwości bezpośrednio w wierszu polecenia, zaleca się używanie IDE, zwłaszcza gdy modyfikowane są właściwości, które uczestniczą w dziedziczeniu.Ręcznie edytowany plik, który jest prawidłowy w MSBuild, może nie być czytelny w projekcie Visual C++ i możesz wprowadzić drobne błędy do procesu kompilacji.
Plik projektu jest plikiem XML, o rozszerzeniu nazwy pliku w postaci .vcxproj.Wszystkie właściwości, które można ustawić w IDE, są zapisywane bezpośrednio do pliku projektu lub do arkuszy właściwości, które są importowane podczas kompilacji.
Poniższa ilustracja przedstawia strony właściwości dla projektu Visual C++.Należy zauważyć, że w okienku po lewej stronie jest zaznaczona regułaKatalogi VC++, a w prawym okienku są wyświetlone właściwości, które są skojarzone z tą regułą. (Wartości $(...) to makra, które zostały omówione w dalszej części tego artykułu.) Katalogi VC++ to właściwość konfiguracji, jej wartości mogą być różne dla różnych konfiguracji, na przykład Debug i Release.Można użyć pól listy Konfiguracja i Platforma u góry okna dialogowego, aby ustawić konfiguracje, których dotyczą właściwości; w wielu przypadkach Wszystkie platformy i Wszystkie konfiguracje są właściwym wyborem.Ustawienia w regule Wspólne właściwości dotyczą wszystkich konfiguracji.
Ustawianie właściwości projektu
Ogólnie rzecz biorąc, poniżej przedstawiono sposób ustawiania właściwości projektu:
Aby ustawić właściwość dla projektu
Na pasku menu kliknij kolejno opcje Projekt, Właściwości.Lub w Eksploratorze rozwiązań lub Menedżerze właściwości otwórz menu skrótów dla projektu, a następnie wybierz Właściwości.Zostanie otwarte okno dialogowe Strony właściwości.
W polach w górnej części okna dialogowego zaznacz konfiguracje i platformy, których ma dotyczyć ustawienie.
Aby tworzyć lub modyfikować konfiguracje wyświetlane w okienku Konfiguracja, wybierz przycisk Menedżer konfiguracji.
Ustaw wartość właściwości.Po wybraniu przycisku OK nowa wartość jest zapisywana w pliku projektu.
[!UWAGA]
Okno dialogowe Strony właściwości pokazuje tylko strony właściwości, które mają zastosowanie do bieżącego projektu.Na przykład, jeśli projekt nie ma pliku .idl, nie zostanie wyświetlona strona właściwości MIDL.
Więcej informacji na temat właściwości w oknie dialogowym Strony właściwości:
Porada |
---|
Możesz otworzyć stronę właściwości bezpośrednio, wpisując jej nazwę w oknie Szybkie uruchamianie. |
Ustalone właściwości kontra makra
Niektóre właściwości projektu mogą przybierać jako wartość odwołanie do właściwości zdefiniowanej w innym miejscu.Tego rodzaju wartości nazywa się makro w odróżnieniu od innych rodzajów ustawień właściwości projektu.Makro może się odwoływać do właściwości, która jest zdefiniowana przez system MSBuild lub do właściwości zdefiniowanej przez użytkownika.Za pomocą makr zamiast jednoznacznie ustalonych wartości, takich jak ścieżki katalogów, można łatwo udostępniać ustawienia właściwości między komputerami oraz między poszczególnymi wersjami programu Visual Studio, i lepiej zagwarantować, że ustawienia projektu poprawnie uczestniczą w dziedziczeniu właściwości.
makra globalne
Dotyczy wszystkich elementów w konfiguracji projektu.Ma składnię $(name).Przykładem globalnego makro jest $(VCInstallDir), które przechowuje katalog główny instalacji Visual Studio.Makro globalne odpowiada PropertyGroup w MSBuild.makra elementów
Ma składnię %(name).W przypadku pliku, makro elementu dotyczy tylko tego pliku — na przykład można użyć właściwości %(AdditionalIncludeDirectories) w celu określenia opcji dołączania katalogów, która ma zastosowanie tylko do określonego pliku.Tego rodzaju makro elementu odpowiada metadanym ItemGroup w programie MSBuild.Gdy jest używane w kontekście konfiguracji projektu, makro elementu stosuje się do wszystkich plików określonego typu.Na przykład, właściwość konfiguracji Definicje preprocesora języka C/C++ może akceptować makro elementu %(PreprocessorDefinitions), które stosuje się do wszystkich plików .cpp w projekcie.Tego rodzaju makro elementu odpowiada metadanym ItemDefinitionGroup w programie MSBuild.Aby uzyskać więcej informacji, zobacz Definicje elementów.
Makr można użyć do zdefiniowania wartości właściwości, a Edytora właściwości do wyświetlania wartości dostępnych makr.
Edytor właściwości
Edytor właściwości służy do modyfikowania niektórych właściwości ciągów i zaznaczania makr jako wartości.Aby otworzyć Edytor właściwości, zaznacz właściwość na stronie właściwości, a następnie wybierz strzałkę w dół po prawej stronie.Jeśli na liście rozwijanej znajduje się pozycja <Edytuj>, można ją wybrać, aby wyświetlić Edytor właściwości dla tej właściwości.
W Edytorze właściwości można wybrać przycisk Makra w celu wyświetlenia dostępnych makr oraz ich bieżących wartości.Poniższa ilustracja przedstawia Edytor właściwości dla właściwości Dodatkowe katalogi dołączane po wybraniu przycisku Makra.Gdy pole wyboru Dziedzicz z wartości nadrzędnych lub domyślnych projektu jest zaznaczone i dodawana jest nowa wartość, jest ona dołączana do dowolnych wartości, które obecnie są dziedziczone.Jeśli usuniesz zaznaczenie pola wyboru, nowa wartość zamieni wartości dziedziczone.W większości przypadków pozostaw zaznaczone pole wyboru.
Udostępnianie konfiguracji właściwości wielokrotnego użytku
Jeśli masz wspólny, często używany zestaw właściwości, które chcesz zastosować do wielu projektów, możesz użyć Menedżera właściwości, aby ująć je w nadającym się do ponownego użycia pliku arkusza właściwości, który zwyczajowo ma rozszerzenie nazwy pliku .props.Arkusz (lub arkusze) można stosować do nowych projektów, aby nie było konieczne ustawianie ich właściwości od podstaw.Aby uzyskać dostęp do Menedżera właściwości, na pasku menu wybierz pozycję Widok, Menedżer właściwości.
Jeśli wybierzesz opcję Dodaj nowy arkusz właściwości projektu, a następnie wybierzesz na przykład arkusz właściwości MyProps.props, pojawi się okno dialogowe strony właściwości.Należy zauważyć, że ma ona zastosowanie do arkusza właściwości MyProps; wszelkie wprowadzone zmiany są zapisywane w arkuszu, a nie w pliku projektu (.vcxproj).
Właściwości w arkuszu właściwości zostaną zastąpione, jeśli ustawiono tę samą właściwość bezpośrednio w pliku .vcxproj.
Można importować arkusz własności tak często, jak jest to wymagane.Wiele projektów w rozwiązaniu może dziedziczyć ustawienia z tego samego arkusza właściwości, a projekt może mieć wiele arkuszy.Arkusz właściwości może dziedziczyć ustawienia z innego arkusza właściwości.
Ważne |
---|
Domyślnie plik .props nie uczestniczy w kontroli źródła, ponieważ nie jest utworzony jako element projektu.Można ręcznie dodać plik jako element rozwiązania, jeżeli chce się go włączyć do kontroli źródła. |
Aby utworzyć arkusz właściwości
Na pasku menu wybierz Widok, Menedżer właściwości.Zostanie otwarty Menedżer właściwości.
Aby zdefiniować zakres arkusza właściwości, wybierz element, do którego ma to zastosowanie.Może to być określona konfiguracja lub inny arkusz właściwości.Otwórz menu skrótów dla tego elementu, wybierz opcję Dodaj nowy arkusz właściwości projektu.Określ nazwę i lokalizację.
W Menedżerze właściwości otwórz nowy arkusz właściwości, a następnie ustaw właściwości, które chcesz uwzględnić.
Dziedziczenie właściwości
Właściwości projektu są warstwowe.Każda warstwa dziedziczy wartości poprzedniej warstwy, ale dziedziczone wartości mogą być zastąpione przez ustawienie właściwości w sposób jawny.Oto podstawowe drzewo dziedziczenia:
Domyślne ustawienia z zestawu narzędzi CPP MSBuild (..\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.cpp.default.props, który jest importowany przez plik .vcxproj.)
Arkusze właściwości
Plik .vcxproj. (Można zastąpić ustawienia domyślne i ustawienia arkusza właściwości.)
Metadane elementów
Porada |
---|
Na stronie właściwości, właściwość w bold jest zdefiniowana w bieżącym kontekście.Właściwość czcionką normalną jest dziedziczona. |
Plik projektu (.vcxproj) importuje inne arkusze właściwości podczas procesu kompilacji.Po zaimportowaniu wszystkich arkuszy właściwości, plik projektu jest oceniany i ostatnia definicja dowolnej wartości właściwości jest tą, która będzie używana.Czasami warto wyświetlić plik rozszerzony w celu stwierdzenia, jak jest dziedziczona dana wartość właściwości.Aby wyświetlić rozszerzoną wersję, wprowadź następujące polecenie w wierszu polecenia Visual Studio. (Zastąp nazwy plików zastępczych nazwami, których chcesz używać.)
msbuild /pp:temp.txtmyapp**.vcxproj**
Rozwinięte pliki projektu mogą być duże i trudne do zrozumienia, chyba że znasz MSBuild.Oto podstawowa struktura pliku projektu:
Podstawowe właściwości projektu, które nie są udostępniane w środowisku IDE.
Import pliku Microsoft.cpp.default.props, który określa pewne właściwości podstawowe, niezależne od zestawu narzędzi.
Globalne właściwości konfiguracji (udostępniane jako domyślne właściwości Zestaw narzędzi platformy i Projekt na stronie Ogólne ustawienia konfiguracji).Te właściwości określają, który zestaw narzędzi i które wewnętrzne arkusze właściwości są importowane w pliku Microsoft.cpp.props w następnym kroku.
Import pliku Microsoft.cpp.props, który określa większość ustawień domyślnych projektu.
Import wszystkich arkuszy właściwości, w tym plików .user.Te arkusze właściwości mogą zastąpić wszystko, z wyjątkiem właściwości domyślnych Zestaw narzędzi platformy i Projekt.
Pozostałe właściwości konfiguracji projektu.Te wartości mogą zastąpić to, co ustawiono w arkuszach właściwości.
Elementy (pliki) wraz z ich metadanymi.To jest zawsze ostateczny wynik, jeśli chodzi o reguły oceny MSBuild, nawet jeśli występują one przed innymi właściwościami i importami.
Aby uzyskać więcej informacji, zobacz Właściwości programu MSBuild.
Pliki .user i kwestia ich problematyczności
Poprzednie wersje Visual Studio używały arkuszy właściwości globalnych, które miały rozszerzenie nazwy pliku .user i znajdowały się w folderze <userprofile>\AppData\Local\Microsoft\MSBuild\v4.0\.Firma Microsoft nie zaleca już używania tych plików, ponieważ ustawiają one właściwości konfiguracji projektu dla poszczególnych użytkowników i konkretnych komputerów.Takie ustawienia „globalne” mogą zakłócać kompilacje, zwłaszcza gdy są one ukierunkowane na więcej niż jedną platformę na komputerze kompilacji.Na przykład, jeśli masz zarówno projekt MFC, jak i projekt Windows Phone, właściwości .user byłyby nieprawidłowe dla jednego z nich.Arkusze właściwości wielokrotnego użytku są bardziej elastyczne i bardziej niezawodne.
Pomimo tego, że pliki .user są nadal instalowane przez Visual Studio i uczestniczą w dziedziczeniu właściwości, są one domyślnie puste.Najlepszym rozwiązaniem jest usunięcie odwołania do nich w Menedżerze właściwości, aby zapewnić, że projekty będą działać niezależnie od wszelkich ustawień dla poszczególnych użytkowników i komputerów. Jest to istotne do zapewnienia poprawnego zachowania w środowisku SCC (kontroli kodu źródłowego).
Dodawanie katalogu plików dołączonych do zestawu katalogów domyślnych
Podczas dodawania katalogu plików dołączonych do projektu jest ważne, aby nie zastąpić domyślnych katalogów.Poprawny sposób dodania katalogu to dołączenie nowej ścieżki, na przykład „C:\MyNewIncludeDir\”, a następnie dołączenie makra $(IncludePath) do wartości właściwości.
Tworzenie makro zdefiniowanego przez użytkownika
Można utworzyć zdefiniowane przez użytkownika makra do wykorzystania jako zmienne w kompilacjach projektu.Na przykład, można utworzyć makro zdefiniowane przez użytkownika, które udostępnia wartość do niestandardowego kroku kompilacji lub niestandardowego narzędzia kompilacji.Makro zdefiniowane przez użytkownika to para nazwa/wartość.W pliku projektu użyj notacji $(name), aby uzyskać dostęp do wartości.
Makro zdefiniowane przez użytkownika jest przechowywane w arkuszu właściwości.Jeśli projekt nie zawiera jeszcze arkusza właściwości, można go utworzyć, wykonując kroki wcześniej w tym artykule.
Aby utworzyć makro zdefiniowane przez użytkownika
W oknie Menedżer właściwości (na pasku menu wybierz Widok, Menadżer właściwości), otwórz menu skrótów dla arkusza właściwości (jego nazwa kończy się na .user) i wybierz polecenie Właściwości.Zostanie otwarte okno dialogowe Strony właściwości dla tego arkusza właściwości.
W lewym okienku okna dialogowego wybierz opcję Makra użytkownika.W prawym okienku wybierz przycisk Dodaj makro, aby otworzyć okno dialogowe Dodaj makro użytkownika.
W oknie dialogowym określ nazwę i wartość dla makra.Opcjonalnie wybierz pole wyboru Ustaw to makro jako zmienną środowiskową w środowisku kompilacji.
Ustawianie zmiennych środowiskowych dla kompilacji
Kompilator języka Visual C++ (cl.exe) rozpoznaje pewne zmienne środowiskowe, w szczególności LIB, LIBPATH, PATH i INCLUDE.Podczas kompilowania przy użyciu IDE, właściwości ustawione na stronie właściwości Strona właściwości katalogów VC++ są używane do ustawiania tych zmiennych środowiskowych.Jeśli wartości LIB, LIBPATH i INCLUDE zostały już ustawione, na przykład przez wiersz polecenia programistów, zostaną zastąpione wartościami odpowiednich właściwości programu MSBuild.Następnie kompilacja dołącza wartość właściwości katalogów plików wykonywalnych Katalogi VC++ do PATH.Można ustawić zdefiniowaną przez użytkownika zmienną środowiskową utworzoną przez zdefiniowane przez użytkownika makro, a następnie zaznaczając pole wyboru, które mówi Ustaw to makro jako zmienną środowiskową w środowisku kompilacji.
Ustawianie zmiennych środowiskowych dla sesji debugowania
W lewej części okna dialogowego Strony właściwości rozwiń Właściwości konfiguracji, a następnie wybierz Debugowanie.
W prawym okienku, zmodyfikuj ustawienia projektu Środowisko lub Scal środowisko, a następnie wybierz przycisk OK.
Wyświetlanie wszystkich makr i ich wartości
W oknie dialogowym Strony właściwości projektu wybierz właściwość ciągu, taką jak Katalogi VC++, wybierz przycisk strzałki w dół w kolumnie po prawej stronie, a następnie wybierz polecenie <Edytuj>, aby otworzyć Edytor właściwości.W Edytorze właściwości wybierz przycisk Makra.
Ustawianie właściwości wielu konfiguracji jednocześnie
Aby ustawić właściwości dla wszystkich konfiguracji w polach w górnej części okna dialogowego Strony właściwości projektu , wybierz opcję Wszystkie konfiguracje i Wszystkie platformy, a następnie ustaw żądane właściwości.
Aby ustawić właściwości tylko niektórych konfiguracji, zaznacz je w oknie Menedżera właściwości, a następnie otwórz menu skrótów i wybierz polecenie Właściwości.Wszelkie zmiany ustawień są stosowane do każdej wybranej konfiguracji.
Można również utworzyć jeden arkusz właściwości dla wielu konfiguracji.W tym celu utwórz arkusz właściwości dla każdej konfiguracji. Następnie otwórz menu skrótów dla jednej z nich, wybierz polecenie Dodaj istniejący arkusz właściwości, a następnie dodaj inne arkusze.Jednak jeśli używasz jednego wspólnego arkusza właściwości, należy pamiętać, że po ustawieniu właściwości jest ona ustawiana dla wszystkich konfiguracji, których dotyczy arkusz, a środowisko IED nie pokazuje, które projekty lub inne arkusze właściwości dziedziczą z danego arkusza właściwości.
W dużych rozwiązaniach, które będą miały wiele projektów, może być przydatne utworzenie arkusza właściwości na poziomie rozwiązania.Gdy dodajesz projekt do rozwiązania, za pomocą Menedżera właściwości dodaj arkusz właściwości do projektu.Jeśli jest to wymagane na poziomie projektu, można dodać nowy arkusz właściwości do ustawiania wartości specyficznych dla projektu.
Aby szybko przeglądać i wyszukiwać wszystkie opcje
Strona właściwości Wszystkie opcje (w węźle C/C++ w lewym okienku okna dialogowego Strony właściwości) zapewnia szybki sposób przeglądania i wyszukiwania właściwości, które są dostępne w bieżącym kontekście.Ma specjalne pole wyszukiwania i prostą składnię, aby pomóc w filtrowaniu wyników:
Brak prefiksu:
Wyszukiwanie tylko w nazwach właściwości (podciąg bez uwzględniania wielkości liter).'/' lub '-' :
Wyszukiwanie tylko w przełącznikach kompilatora (prefiks bez uwzględniania wielkości liter)v:
Wyszukiwanie tylko w wartościach (podciąg bez uwzględniania wielkości liter).