Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O sistema de projeto nativo do Visual Studio é baseado em MSBuild. O MSBuild define formatos de arquivo e regras para a construção de projetos de qualquer tipo. Ele gerencia a maior parte da complexidade da construção para várias configurações e plataformas. Você achará útil entender como funciona. Isso é especialmente importante se você quiser definir configurações personalizadas. Ou, para criar conjuntos reutilizáveis de propriedades que você pode compartilhar e importar para vários projetos.
Os ficheiros .vcxproj, .props e .targets
As propriedades do projeto são armazenadas em vários arquivos. Alguns são armazenados diretamente no arquivo do .vcxproj projeto. Outros vêm de outros .targets arquivos ou .props que o arquivo de projeto importa e que fornecem valores padrão. Você encontrará os arquivos de projeto do Visual Studio 2015 em uma pasta específica da localidade no diretório base, %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\v140.
As propriedades do projeto são armazenadas em vários arquivos. Alguns são armazenados diretamente no arquivo do .vcxproj projeto. Outros vêm de outros .targets arquivos ou .props que o arquivo de projeto importa e que fornecem valores padrão. Você encontrará os arquivos de projeto do Visual Studio 2017 em uma pasta específica da localidade no diretório base, %VSINSTALLDIR%Common7\IDE\VC\VCTargets\.
As propriedades do projeto são armazenadas em vários arquivos. Alguns são armazenados diretamente no arquivo do .vcxproj projeto. Outros vêm de outros .targets arquivos ou .props que o arquivo de projeto importa e que fornecem valores padrão. Você encontrará os arquivos de projeto do Visual Studio em uma pasta específica da localidade no diretório base, %VSINSTALLDIR%\MSBuild\Microsoft\VC\<version>. O <version> é específico para a versão do Visual Studio. É v160 para o Visual Studio 2019.
As propriedades também são armazenadas em quaisquer arquivos personalizados .props que você possa adicionar ao seu próprio projeto. É altamente recomendável que você NÃO edite esses arquivos manualmente. Em vez disso, utilize as páginas de propriedades no IDE para modificar todas as propriedades, especialmente aquelas que participam na herança, a menos que o utilizador tenha um conhecimento profundo do MSBuild e dos ficheiros .vcxproj.
Como mostrado anteriormente, a mesma propriedade para a mesma configuração pode ser atribuída um valor diferente nesses arquivos diferentes. Quando você cria um projeto, o mecanismo MSBuild avalia o arquivo de projeto e todos os arquivos importados em uma ordem bem definida que é descrita posteriormente. À medida que cada arquivo é avaliado, quaisquer valores de propriedade definidos nesse arquivo substituirão os valores existentes. Todos os valores que não são especificados são herdados de arquivos que foram avaliados anteriormente. Ao definir uma propriedade com páginas de propriedades, também é importante prestar atenção ao local onde ela foi definida. Se você definir uma propriedade como "X" em um .props arquivo, mas a propriedade estiver definida como "Y" no arquivo de projeto, o projeto será construído com a propriedade definida como "Y". Se a mesma propriedade estiver definida como "Z" em um item de projeto, como um .cpp arquivo, o mecanismo MSBuild usará o valor "Z".
Aqui está a árvore de herança básica:
Configurações padrão do conjunto de ferramentas CPP do MSBuild (o ficheiro no diretório base, que é importado pelo ficheiro
Microsoft.Cpp.Default.props.)Fichas de propriedade
.vcxprojarquivo. (Esse arquivo pode substituir as configurações padrão e da folha de propriedades.)Metadados dos itens
Sugestão
Em uma página de propriedades, uma propriedade em negrito é definida no contexto atual. Uma propriedade na letra normal é herdada.
Exibir um arquivo de projeto expandido com todos os valores importados
Às vezes, é útil exibir o arquivo expandido para determinar como um determinado valor de propriedade é herdado. Para exibir a versão expandida, digite o seguinte comando em um prompt de comando do Visual Studio. (Altere os nomes de arquivo de espaço reservado para o que você deseja usar.)
msbuild /pp:temp.txtmyapp.vcxproj
Os arquivos de projeto expandidos podem ser grandes e difíceis de entender, a menos que você esteja familiarizado com o MSBuild. Aqui está a estrutura básica de um arquivo de projeto:
Propriedades fundamentais do projeto, que não são expostas no IDE.
Importação de
Microsoft.cpp.default.props, que define algumas propriedades básicas independentes do conjunto de ferramentas.Propriedades de Configuração Global (expostas como PlatformToolset e propriedades padrão de Project na página Configuração Geral. Essas propriedades determinam qual conjunto de ferramentas e planilhas de propriedades intrínsecas são importadas
Microsoft.cpp.propsna próxima etapa.Importação do
Microsoft.cpp.props, que define a maioria dos padrões do projeto.Importação de todas as folhas de propriedades, incluindo
.userarquivos. Essas folhas de propriedades podem substituir tudo, exceto as propriedades padrão PlatformToolset e Project .O restante das propriedades de configuração do projeto. Esses valores podem substituir o que foi definido nas folhas de propriedades.
Itens (arquivos) juntamente com seus metadados. Esses itens são sempre a última palavra nas regras de avaliação do MSBuild, mesmo que ocorram antes de outras propriedades e importações.
Para obter mais informações, consulte Propriedades do MSBuild.
Configurações de compilação
Uma configuração é apenas um grupo arbitrário de propriedades que recebem um nome. O Visual Studio fornece configurações de Depuração e Release. Cada um define várias propriedades de forma adequada para uma compilação de depuração ou compilação final. Você pode usar o Configuration Manager para definir configurações personalizadas. São uma maneira conveniente de agrupar propriedades para uma variante específica de build.
Para ter uma ideia melhor das configurações de compilação, abra o Gerenciador de propriedades. Você pode abri-lo escolhendo Exibir > Gerenciador de Propriedades ou Exibir > Outro Gerenciador de Propriedades do Windows>, dependendo de suas configurações.
Property Manager tem nós para cada par de configuração e plataforma no projeto. Em cada um desses nós há nós para folhas de propriedades (.props ficheiros) que definem algumas propriedades específicas para essa configuração específica.
Por exemplo, você pode ir para o painel Geral nas Páginas de propriedades. Altere a propriedade Character set para "Not set" em vez de "Use Unicode" e clique em OK. O Gerenciador de propriedades agora não mostra nenhuma folha de propriedades de Suporte Unicode . Ele foi removido para a configuração atual, mas ainda está lá para outras configurações.
Para obter mais informações sobre o Gerenciador de propriedades e folhas de propriedades, consulte Compartilhar ou reutilizar configurações de projeto do Visual Studio C++.
Sugestão
O .user arquivo é um recurso herdado. Recomendamos que você o exclua, para manter as propriedades corretamente agrupadas de acordo com a configuração e a plataforma.