Visual Studio - Wo werden benutzerdefinierte Pfadmakros definiert?

90

Ich habe gerade das Visual Studio-Projekt einer anderen Person geöffnet und in ihren Build-Eigenschaften haben sie einige benutzerdefinierte Pfadmakros, die sie für ihre Include- und Lib-Verzeichnisse verwenden. Die Makronamen lauten wie folgt:

$(MY_WHATEVER_INCLUDE_DIR)

Ich könnte jedes einzelne Makro manuell durch den realen Pfad ersetzen, aber es wäre schön, nur die Makros zu verwenden. Meine Frage ist, wo definiere ich diese benutzerdefinierten Pfadmakros?

Jake Wilson
quelle
2
Nun, Fudge, ich hatte erwartet, dass dies wirklich leicht zu finden ist. Nach 10 Minuten gab ich auf. . . +1 von mir. Es scheint sich seit VS 6.0 Tagen geändert zu haben. . . Gibt es eine Chance, dass Ihr Benutzer diese direkt in seiner Umgebung definiert hat?
Frank Merrow
1
Die Antwort von gregseth enthält die eigentliche Lösung für dieses Problem: Unter Common Properties befindet sich beim Bearbeiten eines Eigenschaftenblatts ein Abschnitt Benutzermakro, jedoch nur, wenn dieses Blatt für die Lösung / das Projekt spezifisch ist. Wenn Sie also die Standardblätter bearbeiten, die für alle Projekte freigegeben sind, werden Benutzermakros nicht angezeigt. Siehe meinen Kommentar zu Gregseths Antwort unten.
Cam Jackson
1
Wenn Sie eine .props-Datei verwenden, können Sie in Visual Studio 2010 Makros definieren / ändern. Zuvor war die Dateierweiterung .vsprops.
Aditya Kumar Pandey
1
Ich habe hier einige weitere Details zur Verwendung von Eigenschafts-Shset geschrieben: stackoverflow.com/q/25810603/398670
Craig Ringer

Antworten:

47

Dieser Link http://msdn.microsoft.com/en-us/library/a2zdt10t(v=vs.90).aspx könnte Sie interessieren. Die Idee, meine gesamte Systemkonfiguration zu ändern, um ein Projekt zu erstellen, hat mir nicht gefallen. Der interessanteste Teil der Seite ist der letzte Kommentar:

Auf dieser Seite wird nicht erwähnt, wie Sie zu diesem Dialogfeld gelangen:

Doppelklicken Sie im Property Manager auf eine Eigenschaftsseite. Klicken Sie im Baumsteuerelement unter "Allgemeine Eigenschaften" auf "Benutzermakros".

gregseth
quelle
8
hmm .. Ich habe anscheinend nicht die Option "Benutzermakros" unter "Allgemeine Eigenschaften". Ich benutze VS 2010 Pro
Jelle Vergeer
21
@ Jelle Der größere Kommentar vom obigen Link enthält die zusätzlichen Informationen, die Sie benötigen! 'Benutzermakros' werden nur unter 'Allgemeine Eigenschaften' angezeigt, wenn das von Ihnen bearbeitete Eigenschaftenblatt für das Projekt / die Lösung spezifisch ist! Sie müssen also das Property Manager-Fenster in VS öffnen, mit der rechten Maustaste auf Ihr Projekt klicken und ein neues Eigenschaftenblatt hinzufügen. Klicken Sie dann mit der rechten Maustaste auf das neu erstellte Blatt -> Eigenschaften, und Sie sehen nun die Option 'Benutzermakros' unter 'Allgemeine Eigenschaften'! Hoffe das hilft :)
Cam Jackson
1
Dies ist eine ziemlich versteckte Option. Dies ist der neue Link für die MSVS-Support-Seite ( msdn.microsoft.com/en-us/library/f2t8ztwy%28v=vs.90%29.aspx ), fast wie nichts. Auf dieser Seite ( sites.google.com/site/pinyotae/Home/visual-studio-visual-c/… ) finden Sie eine Liste detaillierterer Schritte, die nicht perfekt sind, aber einige Hinweise enthalten.
Javier Mr
1
Weitere Informationen und Beispiele wurden hier hinzugefügt : stackoverflow.com/q/25810603/398670 . Es ist wichtig zu verstehen, dass Eigenschaftenblätter an alle, einige oder nur eine Konfigurations- / Plattformkombination angehängt werden können. Anders als im normalen Eigenschafteneditor gibt es keine unterschiedlichen Werte für unterschiedliche Konfigurationen / Plattformen. Wenn Sie das möchten, verwenden Sie jeweils unterschiedliche Blätter. Sehr flexibel, wenn Sie herausgefunden haben, wie Sie mehrere Blätter kombinieren und eines auf Makros in einem anderen verweisen können.
Craig Ringer
In Bezug auf Visual Studio 2019 und den Kommentar von Doug Kimzey ist es möglich, sie in VS 2019 hinzuzufügen. Benutzermakros können gemäß dem in der Antwort von Serge Rogatch angegebenen Verfahren hinzugefügt und bearbeitet werden. Ich habe ein bisschen gebraucht, um es zu finden. :)
Hamp
37

Hier wird der Ansatz mit Bildern beschrieben: https://sites.google.com/site/pinyotae/Home/visual-studio-visual-c/create-user-defined-environment-variables-macros

In Visual Studio müssen Sie:

  1. Klicken Sie im Hauptmenü auf "Ansicht" und dann auf "Property Manager".
  2. Klicken Sie mit der rechten Maustaste in den leeren Bereich des Fensters "Property Manager" und klicken Sie im Popup-Menü auf "Add New Project Property Sheet".
  3. Doppelklicken Sie nach dem Hinzufügen des Eigenschaftenblatts im Eigenschaften-Manager-Fenster darauf und wählen Sie in der Baumstruktur links die Eigenschaftsseite "Benutzermakros" aus.
  4. Dann können Sie auf die Schaltfläche "Makro hinzufügen" klicken

Hier ist ein Tutorial zu Projekteigenschaftenblättern: http://www.dorodnic.com/blog/2014/03/20/visual-studio-macros/

Serge Rogatch
quelle
6
Diese Antwort braucht mehr Upvotes. Bitte wählen Sie diese akzeptierte Antwort. Die aktuell akzeptierte Antwort beantwortet nicht einmal die Frage.
Mike S
1
Falls es nicht offensichtlich ist (es war nicht für mich), müssen Sie Ihr Eigenschaftenblatt zu allen Ihren Projekten hinzufügen (vorausgesetzt, Sie haben mehrere in derselben Lösung). Ich konnte nicht herausfinden, warum es nicht funktionierte, stellte dann aber fest, dass ich es einem anderen Projekt hinzugefügt hatte.
Matt
7

Ein Eigenschaftenblatt ist wahrscheinlich die richtige Lösung. Diese Antwort geht auf @ gregseths ein, anstatt zu versuchen, sie zu ersetzen, da sie für einen Kommentar zu lang ist.

Ich stellte fest, dass ich für 32-Bit- und 64-Bit-Ziele unterschiedliche Pfade benötigte, und dazu musste ich ein wenig herausfinden, sodass ich den Prozess detailliert dokumentiert habe .

Ein wesentliches Missverständnis, das ich mit Eigenschaftenblättern hatte, war, dass ein Eigenschaftenblatt im Gegensatz zum üblichen VS-Eigenschafteneditor, in dem Sie verschiedene Konfigurations- / Plattformkombinationen bearbeiten können, nur eine Liste von Eigenschaften ist. Es gibt keine Unterabschnitte pro Konfiguration und Plattform. Das war verwirrend, denn als ich einem Projekt ein Blatt hinzufügte, erschien es unter jedem Konfigurations- / Plattformknoten und nicht unter dem Projektknoten der obersten Ebene. Alle Einträge beziehen sich tatsächlich auf dieselbe Eigenschaftenblattdatei. Wenn Sie also eine bearbeiten, werden alle geändert, aber das habe ich anfangs nicht verstanden und dachte, ich müsste den Wert an jeder Stelle einzeln ändern.

Sie können nur einer Konfigurations- / Plattformkombination, allen oder nur einer Teilmenge ein Eigenschaftenblatt hinzufügen.

Wenn Sie globale Einstellungen wünschen, können Sie die Konfiguration / Plattform überschreiben, indem Sie sicherstellen, dass die spezifischeren Eigenschaftenblätter die letzten sind. Sie haben also möglicherweise ein Eigenschaftenblatt "Alle Konfigurationen", dann eines für "x86", eines für "x64", eines für "Debug" und eines für "Release". Das x64-Debug-Ziel hätte die Blätter "all", "x86", "debug". Grundsätzlich wird emuliert, was der Eigenschafteneditor von VS intern tut.

Craig Ringer
quelle
3

Re: hmm .. Ich habe anscheinend nicht die Option "Benutzermakros" unter "Allgemeine Eigenschaften". Ich verwende VS 2010 Pro

Die Option Benutzermakros wird nicht angezeigt, wenn Sie das Eigenschaftsdialogfeld für eine Projektdatei wie in der normalen Ansicht "Dateien" öffnen. Sie müssen zur Ansicht "Richtig" wechseln, ein Projekt erweitern und eine Eigenschaftsseite (* .props) auswählen, die Sie zu diesem Zweck hinzugefügt haben. Dort werden die Benutzermakros angezeigt.

Oder Sie können das XML einfach direkt bearbeiten. Makros funktionieren einwandfrei, wenn sie in einer. * Proj-Datei definiert sind, aber es ist sinnlos, sie zu einem "Benutzermakro" zu machen, wenn keine Bearbeitungsseite vorhanden ist. Machen Sie es einfach zu einer einfachen Eigenschaft in einer <PropertyGroup>.

Wie bereits erwähnt, werden auch Umgebungsvariablen abgerufen. Sie müssen sie jedoch in einem Kontext einstellen, in dem der Devenv sie sehen wird! Führen Sie dies in einer Befehlsshell aus und führen Sie DEVENV an derselben Eingabeaufforderung aus. In dieser Situation habe ich eine Batch-Datei erstellt, um die richtigen Variablen festzulegen, DEVENV zu starten und das Symbol für die Bat-Datei auf dem Desktop zu platzieren.

JDługosz
quelle
1
Die "Eigenschaftsansicht" kann der "Eigenschaftsmanager" in Ihrer VS-Version sein, auf den Sie über Ansicht -> Andere Fenster zugreifen können.
Craig Ringer
1
Ich denke, es wird die Ansicht, wenn es als Registerkarte zusammen mit den Ansichten "Datei", "Klasse" und "Ressourcenbaum" angedockt wird.
JDługosz
2

Versuchen Sie es in die andere Richtung, ohne den Aufwand für jedes Eigenschaftenblatt zu erhöhen

Zum Windows - Betriebssystem Systemeigenschaften > Umgebungsvariablen , nur neue und Eingabe der Variable zB: Mein_Pfad und Wert zB: D: \ Dev_Path \

Danach müssen Sie Ihr Visual Studio neu starten. Sie sollten in der Lage sein, $ {MY_PATH} in der Makroliste zu haben

p / s: Beachten Sie nur, dass Jason Williams oben die Methode "OS Environment Variables" beantwortet hat

hghew
quelle
Keine gute Idee, wenn Sie möchten, dass Ihre Immobilie nur zu Ihrem Projekt gehört.
Mia Shani
Mit welcher Anwendung legen Sie diese Eigenschaften fest?
Doug Kimzey
1

Gleiche Antwort wie bei @Serge Rogatch, außer dass ich "Property Manager" in View nicht finden konnte.

Visuelle Schritte zur schnellen Navigation: Geben Sie hier die Bildbeschreibung ein

userom
quelle
0

Der Weg für die neuesten Visual Studio-Versionen (2015+) ist wie folgt:

So erstellen Sie ein benutzerdefiniertes Makro:

  1. Öffnen Sie im Fenster "Property Manager" (in der Menüleiste "Ansicht", "Property Manager") das Kontextmenü für ein Eigenschaftenblatt (dessen Name auf ".user" endet) und wählen Sie dann "Eigenschaften".
  2. Das Dialogfeld Eigenschaftenseiten für dieses Eigenschaftenblatt wird geöffnet. Wählen Sie im linken Bereich des Dialogfelds Benutzermakros aus. Wählen Sie im rechten Bereich die Schaltfläche Makro hinzufügen, um das Dialogfeld Benutzermakro hinzufügen zu öffnen.
  3. Geben Sie im Dialogfeld einen Namen und einen Wert für das Makro an. Aktivieren Sie optional das Kontrollkästchen Dieses Makro als Umgebungsvariable in der Build-Umgebung festlegen.

Quelle

Fantastischer Mr. Fox
quelle
Im Menü "Ansicht" von Visual Studio 2019 wird nichts als "Eigenschaften-Manager" bezeichnet. Auf den Eigenschaftenseiten von Visual Studio 2019 gibt es keinen Eintrag wie "Benutzermakros". Die Suchhilfe lautet Visual Studio 2019 für "Benutzermakros" startet ein " Dialog "Neues Element".
Doug Kimzey
VS2019 - Ansicht -> Andere Fenster -> Property Manager (und Sie sind auf dem richtigen Weg!)
Kirk Bates