Visual Studio - onde definir macros de caminho personalizadas?


90

Acabei de abrir o projeto do Visual Studio de outra pessoa e, em suas propriedades de construção, eles têm algumas macros de caminho personalizadas que estão usando para seus diretórios de inclusão e lib. Os nomes das macros são assim:

$(MY_WHATEVER_INCLUDE_DIR)

Eu poderia substituir manualmente cada macro pelo caminho real, mas seria bom usar apenas as macros. Minha pergunta é, onde posso definir essas macros de caminho personalizado?


2
Bem, fudge, esperava que fosse realmente fácil de encontrar. Após 10 minutos, desisti. . . +1 de mim. Parece ter mudado desde os dias do VS 6.0. . . alguma chance de seu usuário os ter definido diretamente em seu ambiente?
Frank Merrow

1
A resposta de gregseth contém a solução real para este problema: há uma seção Macro do usuário sob Propriedades comuns ao editar uma folha de propriedades, mas apenas se essa folha for específica para a solução / projeto. Portanto, se você estiver editando as folhas padrão que são compartilhadas por todos os projetos, as macros do usuário não serão exibidas. Veja meu comentário sobre a resposta de Gregseth abaixo.
Cam Jackson

1
Usar um arquivo .props faz isso no Visual Studio 2010 para definir / alterar macros. Antes disso, a extensão do arquivo era .vsprops.
Aditya Kumar Pandey

1
Escrevi mais alguns detalhes sobre o uso de shset de propriedade aqui: stackoverflow.com/q/25810603/398670
Craig Ringer

Respostas:


47

Este link http://msdn.microsoft.com/en-us/library/a2zdt10t(v=vs.90).aspx pode ser do seu interesse. Não gostei da ideia de mudar toda a configuração do meu sistema apenas para construir um projeto. A parte mais interessante da página é o último comentário:

Esta página não menciona como chegar a esta caixa de diálogo:

No Property Manager, clique duas vezes em uma página de propriedades. Clique em "Macros de usuário" em "Propriedades comuns" no controle de árvore.


8
hmm .. Parece que não tenho a opção "Macros do usuário" em "Propriedades comuns". Estou usando o VS 2010 Pro
Jelle Vergeer

21
@Jelle O comentário maior do link acima contém as informações extras de que você precisa! 'Macros de usuário' só serão exibidos em 'Propriedades comuns' se a folha de propriedades que você está editando for específica para o projeto / solução! Portanto, o que você precisa fazer é abrir a janela Property Manager no VS, clicar com o botão direito do mouse em seu projeto e adicionar uma nova folha de propriedades. Em seguida, clique com o botão direito do mouse em-> Propriedades na folha recém-criada e você verá a opção 'Macros de usuário' abaixo de 'Propriedades comuns'! Espero que isso ajude :)
Cam Jackson

1
Esta é uma opção bastante oculta. Este é o novo link para a página de suporte do MSVS ( msdn.microsoft.com/en-us/library/f2t8ztwy%28v=vs.90%29.aspx ), quase como nada. Nesta página ( sites.google.com/site/pinyotae/Home/visual-studio-visual-c/… ) está uma lista de etapas mais detalhadas, não é perfeita, mas dá algumas dicas.
Javier Sr.

1
Adicionadas mais algumas informações e exemplos aqui: stackoverflow.com/q/25810603/398670 . Uma coisa importante a entender é que as folhas de propriedades podem ser anexadas a todos, alguns ou apenas a uma combinação de configuração / plataforma. Ao contrário do editor de propriedades normal, não existem valores diferentes para configurações / plataformas diferentes; se você quiser, você usa folhas diferentes para cada um. Bastante flexível, uma vez que você descubra como combinar várias planilhas e fazer uma referência a macros em outra.
Craig Ringer

Com relação ao Visual Studio 2019 e ao comentário de Doug Kimzey, é possível adicioná-los no VS 2019. macros de usuário podem ser adicionadas e editadas seguindo o procedimento indicado pela resposta de Serge Rogatch. Demorei um pouco para encontrá-lo. :)
Hamp

38

Aqui, a abordagem é descrita com imagens: https://sites.google.com/site/pinyotae/Home/visual-studio-visual-c/create-user-defined-environment-variables-macros

No Visual Studio, você precisa:

  1. Clique no menu principal "Visualizar" e depois em "Gerenciador de Propriedades"
  2. Clique com o botão direito no espaço vazio da janela "Property Manager" e no menu pop-up clique em "Add New Project Property Sheet"
  3. Depois de adicionar a folha de propriedades, clique duas vezes na janela do Gerenciador de Propriedades e na árvore à esquerda selecione a página de propriedades "Macros do Usuário"
  4. Em seguida, você pode clicar no botão "Adicionar macro"

Aqui está um tutorial sobre as Folhas de Propriedades do Projeto: http://www.dorodnic.com/blog/2014/03/20/visual-studio-macros/


6
Esta resposta precisa de mais votos positivos. Selecione esta é uma resposta aceita. A resposta aceita atualmente nem mesmo responde à pergunta.
Mike S

1
Caso não seja óbvio (não foi para mim), você deve adicionar sua folha de propriedades a todos os seus projetos (supondo que você tenha vários na mesma solução). Não consegui descobrir por que não estava funcionando, mas então percebi que o tinha adicionado a um projeto diferente.
Matt


7

Uma folha de propriedades provavelmente será a solução certa; essa resposta se baseia em @gregseth, em vez de tentar substituí-lo, pois é muito longa para um comentário.

Descobri que precisava de caminhos diferentes para destinos de 32 bits e 64 bits, e isso exigia um pouco de compreensão, então documentei o processo em detalhes .

Um dos principais mal-entendidos que tive com as folhas de propriedades foi que, ao contrário do editor de propriedades VS usual, onde você pode editar combinações diferentes de configuração / plataforma, uma folha de propriedades é apenas uma lista de propriedades. Ele não tem subseções por configuração e por plataforma. Isso foi confuso porque, quando adicionei uma planilha a um projeto, ela apareceu em cada nó de configuração / plataforma, e não no nó do projeto de nível superior. Todas as entradas são, na verdade, para o mesmo arquivo de folha de propriedades, portanto, editar uma altera todas elas, mas inicialmente não entendi isso e pensei que ainda teria que alterar o valor em cada local individualmente.

Você pode adicionar uma folha de propriedades a apenas uma combinação de configuração / plataforma, a todas elas ou apenas a algum subconjunto.

Se você deseja ter configurações globais, então as sobreposições de configuração / plataforma podem ser feitas certificando-se de que as folhas de propriedades mais específicas sejam as últimas. Portanto, você pode ter uma folha de propriedades "todas as configurações", uma para "x86", uma para "x64", uma para "depurar" e outra para "lançamento". O destino de depuração x64 teria as planilhas "all", "x86", "debug". Basicamente emulando o que o editor de propriedades do VS faz internamente.


3

Re: hmm .. Não parece que tenho a opção "Macros do usuário" em "Propriedades comuns". Estou usando o VS 2010 Pro

A opção User Macros não aparece se você abrir a caixa de diálogo de propriedades para um arquivo proj, como você faz na visualização de Arquivos normal. Você deve alternar para a visualização Propery, expandir algum projeto e escolher uma página de propriedades (* .props) que você adicionou para o propósito. As macros do usuário aparecem lá.

Ou você pode apenas editar o XML diretamente. As macros funcionam bem se definidas em um arquivo. * Proj, mas torná-la uma "Macro do usuário" é inútil se não houver uma página de edição. Portanto, basta torná-lo uma propriedade simples em um <PropertyGroup>.

Como apontado anteriormente, ele também puxa Variáveis ​​de Ambiente. No entanto, você deve ter certeza de defini-los em um contexto onde o Devenv os verá! Faça isso em um shell de comando e execute DEVENV a partir desse mesmo prompt de comando. Quando tive essa situação, criei um arquivo em lote para definir as variáveis ​​adequadas e iniciei o DEVENV, e coloquei o ícone do arquivo bat na área de trabalho.


1
A "Visualização de propriedades" pode ser o "Gerenciador de propriedades" em sua versão do VS, acessada por meio de Exibir -> Outras janelas.
Craig Ringer

1
Eu acho que se torna o modo de exibição quando encaixado como uma guia junto com as exibições de árvore de arquivo, classe e recurso.
JDługosz de

2

Experimente o outro caminho sem o incômodo de adicionar a cada Folha de Propriedades

Vá para Windows OS System Properties > Environment Variables , apenas New e insira a Variable, por exemplo: MY_PATH e o valor, por exemplo: D: \ Dev_Path \

depois disso, você precisa reiniciar o Visual Studio, você deve ser capaz de ter $ {MY_PATH} na lista de macros

p / s: observe que Jason Williams respondeu acima é o método de variáveis ​​de ambiente do sistema operacional


não é uma boa ideia, se você deseja que sua propriedade pertença apenas ao seu projeto.
Mia Shani

Qual aplicativo você está usando para definir essas propriedades?
Doug Kimzey

1

Mesma resposta de @Serge Rogatch, exceto que não consegui encontrar "Property Manager" em View.

Etapas visuais para navegação rápida: insira a descrição da imagem aqui


0

O caminho para as últimas versões do Visual Studio (2015+) é o seguinte:

Para criar uma macro definida pelo usuário:

  1. Na janela do Gerenciador de propriedades (na barra de menus, escolha Exibir, Gerenciador de propriedades), abra o menu de atalho para uma folha de propriedades (seu nome termina em .user) e escolha Propriedades.
  2. A caixa de diálogo Páginas de propriedades para essa folha de propriedades é aberta. No painel esquerdo da caixa de diálogo, selecione Macros do usuário. No painel direito, escolha o botão Adicionar Macro para abrir a caixa de diálogo Adicionar Macro do Usuário.
  3. Na caixa de diálogo, especifique um nome e valor para a macro. Opcionalmente, selecione a caixa de seleção Definir esta macro como uma variável de ambiente no ambiente de construção.

Fonte


Não há nada chamado "Gerenciador de Propriedades" no menu Exibir do Visual Studio 2019. Não há entradas como "Macros do Usuário" nas páginas de Propriedades do Visual Studio 2019. Pesquisar na Ajuda do Visual Studio 2019 para "Macros do Usuário" inicia um " Diálogo Novo Item ".
Doug Kimzey

VS2019 - Visualizar -> Outras janelas -> Gerenciador de propriedades (e você estará no caminho certo!)
Kirk Bates
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.