Visual Studio - Où définir les macros de chemin personnalisées?

90

Je viens d'ouvrir le projet Visual Studio de quelqu'un d'autre et dans leurs propriétés de construction, ils ont quelques macros de chemin personnalisées qu'ils utilisent pour leurs répertoires include et lib. Les noms de macro sont des choses comme ceci:

$(MY_WHATEVER_INCLUDE_DIR)

Je pourrais remplacer manuellement chaque macro par le chemin réel, mais ce serait bien d'utiliser simplement les macros. Ma question est la suivante: où définir ces macros de chemin personnalisées?

Jake Wilson
la source
2
Eh bien fudge, je m'attendais à ce que ce soit vraiment facile à trouver. Au bout de 10 minutes, j'ai abandonné. . . +1 de moi. Il semble avoir changé depuis VS 6.0 jours. . . une chance que votre utilisateur les ait définies directement dans son environnement?
Frank Merrow
1
La réponse de gregseth contient la vraie solution à ce problème: il y a une section Macro utilisateur sous Propriétés communes lors de l'édition d'une feuille de propriétés, mais seulement si cette feuille est spécifique à la solution / projet. Donc, si vous modifiez les feuilles par défaut qui sont partagées dans tous les projets, les macros utilisateur ne s'afficheront pas. Voir mon commentaire sur la réponse de Gregseth ci-dessous.
Cam Jackson
1
L'utilisation d'un fichier .props le fait dans Visual Studio 2010 pour définir / modifier des macros. Auparavant, l'extension de fichier était .vsprops.
Aditya Kumar Pandey
1
J'ai écrit quelques détails supplémentaires sur l'utilisation de la propriété shset ici: stackoverflow.com/q/25810603/398670
Craig Ringer

Réponses:

47

Ce lien http://msdn.microsoft.com/en-us/library/a2zdt10t(v=vs.90).aspx pourrait vous intéresser. Je n'aimais pas l'idée de changer toute la configuration de mon système juste pour construire un projet. La partie la plus intéressante de la page est le dernier commentaire:

Cette page ne mentionne pas comment accéder à cette boîte de dialogue:

Depuis Property Manager, double-cliquez sur une page de propriétés. Cliquez sur "Macros utilisateur" sous "Propriétés communes" dans le contrôle de l'arborescence.

Gregseth
la source
8
hmm .. Je ne semble pas avoir l'option "Macros utilisateur" sous "Propriétés communes". J'utilise VS 2010 Pro
Jelle Vergeer
21
@Jelle Le plus grand commentaire du lien ci-dessus contient les informations supplémentaires dont vous avez besoin! 'Macros utilisateur' ne s'affichera sous 'Propriétés communes' que si la feuille de propriétés que vous éditez est spécifique au projet / solution! Vous devez donc ouvrir la fenêtre Property Manager dans VS, cliquer avec le bouton droit de la souris sur votre projet et ajouter une nouvelle feuille de propriétés. Ensuite, faites un clic droit-> Propriétés sur la feuille nouvellement créée, et vous verrez maintenant l'option «Macros utilisateur» sous «Propriétés communes»! J'espère que ça aide :)
Cam Jackson
1
C'est une option assez cachée. Il s'agit du nouveau lien vers la page de support MSVS ( msdn.microsoft.com/en-us/library/f2t8ztwy%28v=vs.90%29.aspx ), presque comme rien. Dans cette page ( sites.google.com/site/pinyotae/Home/visual-studio-visual-c/… ) se trouve une liste d'étapes plus détaillées, pas parfaites mais vous donne quelques indices.
Javier Mr
1
Ajout d'informations et d'exemples supplémentaires ici: stackoverflow.com/q/25810603/398670 . Une chose clé à comprendre est que les feuilles de propriétés peuvent être attachées à tous, certains ou un seul combo configuration / plate-forme. Contrairement à l'éditeur de propriétés normal, il n'y a pas de valeurs différentes pour différentes configurations / plates-formes; si vous le souhaitez, vous utilisez des feuilles différentes pour chacune. Assez flexible une fois que vous avez compris comment combiner plusieurs feuilles et en faire référence à des macros dans une autre.
Craig Ringer
En ce qui concerne Visual Studio 2019 et le commentaire de Doug Kimzey, il est possible de les ajouter dans VS 2019. Les macros utilisateur peuvent être ajoutées et modifiées en suivant la procédure indiquée par la réponse de Serge Rogatch. Il m'a fallu un peu de temps pour le trouver. :)
Hamp
38

Ici, l'approche est décrite avec des images: https://sites.google.com/site/pinyotae/Home/visual-studio-visual-c/create-user-defined-environment-variables-macros

Dans Visual Studio, vous devez:

  1. Cliquez dans le menu principal «Affichage», puis «Gestionnaire de propriétés»
  2. Cliquez avec le bouton droit de la souris dans l'espace vide de la fenêtre "Property Manager" et dans le menu contextuel, cliquez sur "Add New Project Property Sheet"
  3. Après avoir ajouté la feuille de propriétés, double-cliquez dessus dans la fenêtre Property Manager et dans l'arborescence de gauche, sélectionnez la page de propriétés "Macros utilisateur"
  4. Ensuite, vous pouvez cliquer sur le bouton "Ajouter une macro"

Voici un tutoriel sur les feuilles de propriétés du projet: http://www.dorodnic.com/blog/2014/03/20/visual-studio-macros/

Serge Rogatch
la source
6
Cette réponse a besoin de plus de votes positifs. Veuillez sélectionner cette réponse est acceptée. La réponse actuellement acceptée ne répond même pas à la question.
Mike S
1
Au cas où ce ne serait pas évident (ce n'était pas pour moi), vous devez ajouter votre feuille de propriétés à tous vos projets (en supposant que vous en ayez plusieurs dans la même solution). Je ne pouvais pas comprendre pourquoi cela ne fonctionnait pas, mais j'ai ensuite réalisé que je l'avais ajouté à un autre projet.
Matt
7

Une feuille de propriétés est susceptible d'être la bonne solution; cette réponse élabore sur @ gregseth plutôt que de chercher à le remplacer, car il est trop long pour un commentaire.

J'ai trouvé que j'avais besoin de chemins différents pour les cibles 32 bits et 64 bits, et cela prenait un peu de temps pour comprendre, j'ai donc documenté le processus en détail .

Un malentendu clé que j'ai eu avec les feuilles de propriétés était que, contrairement à l'éditeur de propriétés VS habituel où vous pouvez modifier différentes combinaisons de configuration / plate-forme, une feuille de propriétés n'est qu'une liste de propriétés. Il n'a pas de sous-sections par configuration et par plate-forme. C'était déroutant car lorsque j'ai ajouté une feuille à un projet, elle apparaissait sous chaque nœud de configuration / plate-forme plutôt que sous le nœud de projet de niveau supérieur. Toutes les entrées sont en fait pour le même fichier de feuille de propriétés, donc en éditer une les modifie toutes, mais je ne l'avais pas initialement compris et je pensais que je devrais toujours changer la valeur à chaque endroit individuellement.

Vous pouvez ajouter une feuille de propriétés à une seule combinaison configuration / plate-forme, à toutes ou à un sous-ensemble.

Si vous souhaitez avoir des paramètres globaux, vous pouvez le faire en vous assurant que les feuilles de propriétés plus spécifiques sont les dernières. Vous pourriez donc avoir une feuille de propriétés "toutes les configurations" puis une pour "x86", une pour "x64", une pour "debug" et une pour "release". La cible de débogage x64 aurait les feuilles «all», «x86», «debug». Fondamentalement, émuler ce que fait l'éditeur de propriétés de VS en interne.

Craig Ringer
la source
3

Re: hmm .. Je ne semble pas avoir l'option "Macros utilisateur" sous "Propriétés communes". J'utilise VS 2010 Pro

L'option Macros utilisateur n'apparaît pas si vous ouvrez la boîte de dialogue des propriétés d'un fichier proj, comme vous le faites dans la vue Fichiers normale. Vous devez basculer vers la vue Propery, développer un projet et choisir une page de propriétés (* .props) que vous avez ajoutée à cet effet. Les macros utilisateur s'affichent ici.

Ou, vous pouvez simplement modifier le XML directement. Les macros fonctionnent très bien si elles sont définies dans un fichier. * Proj, mais en faire une "Macro utilisateur" est inutile s'il n'y a pas de page d'édition. Faites-en donc une propriété simple dans un <PropertyGroup>.

Comme indiqué précédemment, il extrait également des variables d'environnement. Cependant, vous devez vous assurer de les placer dans un contexte où le Devenv les verra! Faites cela dans un shell de commande, puis exécutez DEVENV à partir de cette même invite de commande. Quand j'ai eu cette situation, j'ai créé un fichier de commandes pour définir les variables appropriées et lancer DEVENV, et mettre cette icône de fichier de chauve-souris sur le bureau.

JDługosz
la source
1
La "Vue de la propriété" peut être le "Gestionnaire de la propriété" dans votre version VS, accessible via Vue -> Autres fenêtres.
Craig Ringer
1
Je suppose qu'il devient la vue lorsqu'il est ancré en tant qu'onglet avec les vues d'arborescence de fichiers, de classes et de ressources.
JDługosz
2

Essayez l'inverse sans avoir à ajouter à chaque feuille de propriétés

Allez dans Propriétés système du système d' exploitation Windows > Variables d'environnement , simplement Nouveau et entrez la variable, par exemple: MY_PATH et la valeur par exemple: D: \ Dev_Path \

après cela, vous devez redémarrer votre Visual Studio, vous devriez pouvoir avoir $ {MY_PATH} dans la liste des macros

p / s: remarquez simplement que Jason Williams a répondu ci-dessus est la méthode des variables d'environnement du système d'exploitation

hghew
la source
pas une bonne idée, si vous voulez que votre propriété appartienne uniquement à votre projet.
Mia Shani
Quelle application utilisez-vous pour définir ces propriétés?
Doug Kimzey
1

Même réponse que pour @Serge Rogatch, sauf que je n'ai pas pu trouver "Property Manager" dans View.

Étapes visuelles pour une navigation rapide: entrez la description de l'image ici

utilisateur
la source
0

Le chemin pour les dernières versions de Visual Studio (2015+) est le suivant:

Pour créer une macro définie par l'utilisateur:

  1. Dans la fenêtre Gestionnaire de propriétés (dans la barre de menus, choisissez Affichage, Gestionnaire de propriétés), ouvrez le menu contextuel d'une feuille de propriétés (son nom se termine par .user), puis choisissez Propriétés.
  2. La boîte de dialogue Pages de propriétés de cette feuille de propriétés s'ouvre. Dans le volet gauche de la boîte de dialogue, sélectionnez Macros utilisateur. Dans le volet droit, choisissez le bouton Ajouter une macro pour ouvrir la boîte de dialogue Ajouter une macro utilisateur.
  3. Dans la boîte de dialogue, spécifiez un nom et une valeur pour la macro. Si vous le souhaitez, cochez la case Définir cette macro comme variable d'environnement dans l'environnement de génération.

La source

Fantastique Mr Fox
la source
Il n'y a rien appelé «Gestionnaire de propriétés» dans le menu Affichage de Visual Studio 2019. Il n'existe aucune entrée telle que «Macros utilisateur» dans les pages Propriétés de Visual Studio 2019. La recherche d'aide est Visual Studio 2019 pour «Macros utilisateur» lance un « Boîte de dialogue Nouvel élément ".
Doug Kimzey
VS2019 - Vue -> Autres fenêtres -> Gestionnaire de propriétés (et vous serez sur la bonne voie!)
Kirk Bates