Visual Studio - gdzie definiować makra ścieżki niestandardowej?

92

Właśnie otworzyłem czyjś projekt Visual Studio i we właściwościach kompilacji mają kilka niestandardowych makr ścieżek, których używają do swoich katalogów include i lib. Nazwy makr wyglądają następująco:

$(MY_WHATEVER_INCLUDE_DIR)

Mógłbym ręcznie zastąpić każde makro rzeczywistą ścieżką, ale byłoby miło po prostu użyć makr. Moje pytanie brzmi: gdzie mam zdefiniować te niestandardowe makra ścieżek w?

Jake Wilson
źródło
2
Cóż, krówki, spodziewałem się, że będzie to naprawdę łatwe do znalezienia. Po 10 minutach poddałem się. . . +1 ode mnie. Wydaje się, że zmieniło się to od VS 6.0 dni. . . jest szansa, że ​​Twój użytkownik zdefiniował je bezpośrednio w swoim środowisku?
Frank Merrow,
1
Odpowiedź gregsetha zawiera prawdziwe rozwiązanie tego problemu: podczas edycji arkusza właściwości znajduje się sekcja Makro użytkownika pod właściwościami wspólnymi, ale tylko wtedy, gdy jest on specyficzny dla rozwiązania / projektu. Jeśli więc edytujesz domyślne arkusze, które są udostępniane we wszystkich projektach, makra użytkownika nie będą wyświetlane. Zobacz mój komentarz do odpowiedzi Gregsetha poniżej.
Cam Jackson,
1
Użycie pliku .props robi to w programie Visual Studio 2010 do definiowania / zmieniania makr. Wcześniej rozszerzenie pliku to .vsprops.
Aditya Kumar Pandey
1
Więcej szczegółów na temat wykorzystania zestawu właściwości opisałem tutaj: stackoverflow.com/q/25810603/398670
Craig Ringer

Odpowiedzi:

48

Ten link http://msdn.microsoft.com/en-us/library/a2zdt10t(v=vs.90).aspx może Cię zainteresować. Nie podobał mi się pomysł zmiany konfiguracji całego systemu tylko po to, aby zbudować projekt. Najciekawszą częścią strony jest ostatni komentarz:

Ta strona nie wspomina, jak dostać się do tego okna dialogowego:

W Menedżerze nieruchomości kliknij dwukrotnie stronę właściwości. Kliknij „Makra użytkownika” w „Właściwościach wspólnych” w drzewie.

gregseth
źródło
8
hmm .. Wygląda na to, że nie mam opcji "Makra użytkownika" w "Właściwościach wspólnych". Używam VS 2010 Pro
Jelle Vergeer
21
@Jelle Większy komentarz z powyższego linku zawiera dodatkowe informacje, których potrzebujesz! „Makra użytkownika” będą wyświetlane w obszarze „Właściwości wspólne” tylko wtedy, gdy arkusz właściwości, który edytujesz, jest specyficzny dla projektu / rozwiązania! Więc co musisz zrobić, to otworzyć okno Property Manager w VS, kliknąć prawym przyciskiem myszy projekt i dodać nowy arkusz właściwości. Następnie kliknij prawym przyciskiem myszy -> Właściwości na nowo utworzonym arkuszu, a zobaczysz teraz opcję „Makra użytkownika” pod „Wspólnymi właściwościami”! Mam nadzieję, że to pomoże :)
Cam Jackson
1
To dość ukryta opcja. To jest nowy link do strony pomocy technicznej MSVS ( msdn.microsoft.com/en-us/library/f2t8ztwy%28v=vs.90%29.aspx ), prawie jak nic. Na tej stronie ( sites.google.com/site/pinyotae/Home/visual-studio-visual-c/… ) znajduje się lista kroków bardziej szczegółowa, nie idealna, ale zawiera kilka wskazówek.
Javier Mr
1
Dodano więcej informacji i przykładów tutaj: stackoverflow.com/q/25810603/398670 . Kluczową rzeczą do zrozumienia jest to, że arkusze właściwości można dołączać do wszystkich, niektórych lub tylko jednego zestawu konfiguracji / platformy. W przeciwieństwie do zwykłego edytora właściwości nie ma różnych wartości dla różnych konfiguracji / platform; jeśli chcesz, używasz różnych arkuszy dla każdego. Dość elastycznie, gdy zorientujesz się, jak połączyć wiele arkuszy, a jeden odwołuje się do makr w innym.
Craig Ringer
W odniesieniu do Visual Studio 2019 i komentarza Douga Kimzeya możliwe jest ich dodanie w VS 2019. Makra użytkownika można dodawać i edytować zgodnie z procedurą wskazaną w odpowiedzi Serge'a Rogatcha. Trochę zajęło mi znalezienie tego. :)
Hamp
39

Tutaj podejście jest opisane za pomocą zdjęć: https://sites.google.com/site/pinyotae/Home/visual-studio-visual-c/create-user-defined-environment-variables-macros

W programie Visual Studio musisz:

  1. Kliknij w menu głównym „Widok”, a następnie „Menedżer nieruchomości”
  2. Kliknij prawym przyciskiem myszy puste miejsce okna „Menedżer właściwości”, a następnie w menu podręcznym kliknij opcję „Dodaj nowy arkusz właściwości projektu”
  3. Po dodaniu arkusza właściwości kliknij go dwukrotnie w oknie Menedżera właściwości iw drzewie po lewej stronie wybierz stronę właściwości "Makra użytkownika"
  4. Następnie możesz kliknąć przycisk „Dodaj makro”

Oto samouczek dotyczący arkuszy właściwości projektu: http://www.dorodnic.com/blog/2014/03/20/visual-studio-macros/

Serge Rogatch
źródło
6
Ta odpowiedź wymaga więcej głosów pozytywnych. Proszę wybrać to jest zaakceptowana odpowiedź. Aktualnie przyjęta odpowiedź nie odpowiada nawet na pytanie.
Mike S
1
W przypadku, gdy nie jest to oczywiste (nie było to dla mnie), musisz dodać arkusz właściwości do wszystkich swoich projektów (zakładając, że masz wiele w tym samym rozwiązaniu). Nie mogłem zrozumieć, dlaczego to nie działa, ale potem zdałem sobie sprawę, że dodałem go do innego projektu.
Matt
7

Arkusz nieruchomość może być dobrym rozwiązaniem; ta odpowiedź rozwija @ gregseth zamiast próbować go zastąpić, ponieważ jest zbyt długa na komentarz.

Zauważyłem, że potrzebuję różnych ścieżek dla 32-bitowych i 64-bitowych celów, a zrobienie tego wymagało trochę zrozumienia, więc szczegółowo udokumentowałem ten proces .

Jednym z kluczowych nieporozumień związanych z arkuszami właściwości było to, że w przeciwieństwie do zwykłego edytora właściwości VS, w którym można edytować różne kombinacje konfiguracji / platform, arkusz właściwości jest po prostu listą właściwości. Nie ma podsekcji na konfigurację i platformę. To było mylące, ponieważ kiedy dodałem arkusz do projektu, pojawił się on pod każdym węzłem konfiguracji / platformy, a nie pod węzłem projektu najwyższego poziomu. Wszystkie wpisy są w rzeczywistości dla tego samego pliku arkusza właściwości, więc edycja zmienia je wszystkie, ale początkowo tego nie rozumiałem i pomyślałem, że nadal będę musiał zmieniać wartość w każdym miejscu z osobna.

Możesz dodać arkusz właściwości tylko do jednego zestawu konfiguracji / platformy, do wszystkich lub tylko do pewnego podzbioru.

Jeśli chcesz mieć ustawienia globalne, nadpisuje konfigurację / platformę, możesz to zrobić, upewniając się, że bardziej szczegółowe arkusze właściwości są ostatnie. Możesz więc mieć arkusz właściwości „wszystkie konfiguracje”, a następnie jeden dla „x86”, jeden dla „x64”, jeden dla „debugowania” i jeden dla „wydania”. Cel debugowania x64 miałby arkusze „all”, „x86”, „debug”. Zasadniczo emuluje to, co robi wewnętrznie edytor właściwości VS.

Craig Ringer
źródło
3

Re: hmm .. Wygląda na to, że nie mam opcji "Makra użytkownika" w "Właściwościach wspólnych". Używam VS 2010 Pro

Opcja Makra użytkownika nie jest wyświetlana po otwarciu okna dialogowego właściwości pliku proj, tak jak w normalnym widoku Pliki. Musisz przełączyć się do widoku Propery, rozwinąć jakiś projekt i wybrać stronę właściwości (* .props), którą dodałeś w tym celu. Pojawiają się tam makra użytkownika.

Możesz też bezpośrednio edytować plik XML. Makra działają dobrze, jeśli są zdefiniowane w pliku. * Proj, ale uczynienie go „Makrem użytkownika” jest bezcelowe, jeśli nie ma strony edycji. Więc po prostu uczyń go zwykłą właściwością w <PropertyGroup>.

Jak wspomniano wcześniej, pobiera również zmienne środowiskowe. Musisz jednak ustawić je w kontekście, w którym Devenv je zobaczy! Zrób to w powłoce poleceń, a następnie uruchom DEVENV z tego samego wiersza polecenia. Kiedy miałem taką sytuację, utworzyłem plik wsadowy, aby ustawić odpowiednie zmienne i uruchomić DEVENV, i umieściłem tę ikonę pliku bat na pulpicie.

JDługosz
źródło
1
„Widok właściwości” może być „Menedżerem właściwości” w Twojej wersji VS, do którego można uzyskać dostęp poprzez Widok -> Inne Windows.
Craig Ringer
1
Wydaje mi się, że staje się Widokiem, gdy jest zadokowany jako karta wraz z widokami drzewa plików, klas i zasobów.
JDługosz
2

Wypróbuj inny sposób bez kłopotów z dodawaniem do każdego arkusza właściwości

Przejdź do Właściwości systemu operacyjnego Windows > Zmienne środowiskowe , po prostu Nowa i wprowadź zmienną, np .: MOJA_ŚCIEŻKA i wartość, np .: D: \ Dev_Path \

po tym musisz ponownie uruchomić program Visual Studio, na liście makr powinno być $ {MY_PATH}

p / s: po prostu zauważ, że Jason Williams, na który odpowiedział powyżej, to metoda zmiennych środowiskowych systemu operacyjnego

hghew
źródło
nie jest to dobry pomysł, jeśli chcesz, aby Twoja nieruchomość należała tylko do Twojego projektu.
Mia Shani
Jakiej aplikacji używasz do ustawiania tych właściwości?
Doug Kimzey,
1

Taka sama odpowiedź jak w przypadku @Serge Rogatch, z tą różnicą, że nie udało mi się znaleźć „Property Manager” w widoku.

Wizualne kroki do szybkiej nawigacji: wprowadź opis obrazu tutaj

userom
źródło
0

Sposób na najnowsze wersje Visual Studio (2015+) wygląda następująco:

Aby utworzyć makro zdefiniowane przez użytkownika:

  1. W oknie Menedżera właściwości (na pasku menu wybierz Widok, Menedżer właściwości), otwórz menu skrótów dla arkusza właściwości (jego nazwa kończy się na .user), a następnie wybierz Właściwości.
  2. Zostanie otwarte okno dialogowe strony właściwości dla tego arkusza właściwości. W lewym panelu okna dialogowego wybierz opcję Makra użytkownika. W prawym okienku wybierz przycisk Dodaj makro, aby otworzyć okno dialogowe Dodaj makro użytkownika.
  3. W oknie dialogowym określ nazwę i wartość makra. Opcjonalnie zaznacz pole wyboru Ustaw to makro jako zmienną środowiskową w środowisku kompilacji.

Źródło

Fantastyczny pan Fox
źródło
W menu Widok programu Visual Studio 2019 nie ma nic o nazwie „Menedżer właściwości”. Na stronach właściwości programu Visual Studio 2019 nie ma takiego wpisu, jak „Makra użytkownika”. Wyszukiwanie w Pomocy to Visual Studio 2019 dla „Makr użytkownika” powoduje uruchomienie „ Nowa pozycja ”.
Doug Kimzey,
VS2019 - Widok -> Inne Windows -> Menedżer właściwości (i będziesz na dobrej drodze!)
Kirk Bates,