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 Gerenciador de Soluções aninha arquivos relacionados para ajudar a organizá-los e torná-los mais fáceis de localizar. Por exemplo, se você adicionar um formulário do Windows Forms a um projeto, o arquivo de código do formulário será aninhado abaixo do formulário no Gerenciador de Soluções. Em projetos .NET Core (e .NET 5 e posteriores), o aninhamento de arquivos pode ser levado um passo adiante. Você pode escolher entre as predefinições de aninhamento de ficheiros Desativado, Padrão e Web. Você também pode personalizar como os arquivos são aninhados ou criar configurações específicas da solução e do projeto.
Observação
No Visual Studio 2022 versão 17.2 e anteriores, esse recurso só era suportado para projetos ASP.NET Core. Na versão 17.3 e posterior, todos os projetos destinados ao .NET suportam aninhamento de arquivos.
Opções de aninhamento de arquivos
As opções disponíveis para aninhamento de arquivos não personalizados são:
Desativado: esta opção fornece uma lista plana de ficheiros sem hierarquia.
Padrão: essa opção fornece o comportamento padrão de aninhamento de arquivos no Gerenciador de Soluções. Se não existirem configurações para um determinado tipo de projeto, nenhum arquivo no projeto será aninhado. Se existirem configurações (por exemplo, para um projeto Web), o aninhamento será aplicado.
Web: Esta opção aplica o comportamento de aninhamento de arquivos da Web a todos os projetos na solução atual. Tem inúmeras regras, e nós encorajamos você a verificá-lo e nos dizer o que você pensa. A captura de tela a seguir destaca apenas alguns exemplos do comportamento de aninhamento de arquivos que você obtém com essa opção:
Personalizar aninhamento de arquivos
Se você não gostar do que recebe prontamente, poderá criar suas próprias configurações personalizadas de aninhamento de arquivos que instruem o Gerenciador de Soluções sobre como aninhar arquivos. Você pode adicionar quantas configurações de aninhamento de arquivos personalizadas quiser e alternar entre elas conforme desejar. Para criar uma nova configuração personalizada, você pode começar com um arquivo vazio ou usar as configurações da Web como ponto de partida:
Recomendamos que você use as configurações da Web como ponto de partida porque é mais fácil trabalhar com algo que já funciona. Se você usar as configurações da Web como ponto de partida, o arquivo .filenesting.json será semelhante ao seguinte arquivo:
Vamos concentrar-nos no nó dependentFileProviders e nos seus nós filhos. Cada nó filho é um tipo de regra que o Visual Studio pode usar para aninhar ficheiros. Por exemplo, ter o mesmo nome de arquivo, mas uma extensão diferente é um tipo de regra. As regras disponíveis são:
extensionToExtension: Utilize este tipo de regra para aninhar file.js sob file.ts
fileSuffixToExtension: use este tipo de regra para aninharfile-vsdoc.js em file.js
addedExtension: Use este tipo de regra para aninhar file.html.css em file.html
pathSegment: use esse tipo de regra para aninharjquery.min.js sob jquery.js
allExtensions: Use este tipo de regra para aninhar o arquivo.* em file.js
fileToFile: Use este tipo de regra para aninharbower.json em
.bowerrc
O provedor extensionToExtension
Esse provedor permite definir regras de aninhamento de arquivos usando extensões de arquivo específicas. Considere o seguinte exemplo:
cart.js está aninhado em cart.ts devido à primeira regra extensionToExtension
cart.js não está aninhado em cart.tsx porque
.tsvem antes.tsxnas regras, e só pode haver um pailight.css está aninhado em light.sass devido à segunda regra extensionToExtension
home.html está aninhado em home.md devido à terceira regra extensionToExtension
O provedor fileSuffixToExtension
Este provedor funciona exatamente como o provedor extensionToExtension , com a única diferença sendo que a regra olha para o sufixo do arquivo em vez de apenas a extensão. Considere o seguinte exemplo:
portal-vsdoc.js está aninhado em portal.js devido à regra fileSuffixToExtension
todos os outros aspetos da regra funcionam da mesma forma que extensionToExtension
O provedor de extensões adicionadas
Este fornecedor aninha ficheiros com uma extensão adicional dentro do ficheiro sem uma extensão adicional. A extensão adicional só pode aparecer no final do nome do arquivo completo.
Considere o seguinte exemplo:
- file.html.css está aninhado em file.html devido à regra addedExtension
Observação
Você não especifica nenhuma extensão de arquivo para a addedExtension regra, ela se aplica automaticamente a todas as extensões de arquivo. Ou seja, qualquer arquivo com o mesmo nome e extensão que outro arquivo mais uma extensão adicional no final é aninhado sob o outro arquivo. Você não pode limitar o efeito deste provedor a apenas extensões de arquivo específicas.
O provedor pathSegment
Este provedor aninha arquivos com uma extensão adicional em um arquivo sem uma extensão adicional. A extensão adicional só pode aparecer no meio do nome do arquivo completo.
Considere o seguinte exemplo:
- jquery.min.js está aninhado em jquery.js devido à regra pathSegment
Observação
Se você não especificar nenhuma extensão de arquivo específica para a
pathSegmentregra, ela se aplicará a todas as extensões de arquivo. Ou seja, qualquer arquivo com o mesmo nome e extensão de outro arquivo mais uma extensão adicional no meio é aninhado sob o outro arquivo.Você pode limitar o
pathSegmentefeito da regra a extensões de arquivo específicas especificando-as da seguinte maneira:"pathSegment": { "add": { ".*": [ ".js", ".css", ".html", ".htm" ] } }
O provedor allExtensions
Este provedor permite definir regras de aninhamento de arquivos para arquivos com qualquer extensão, mas o mesmo nome de arquivo base. Considere o seguinte exemplo:
- template.cs e template.doc são aninhados sob template.tt devido à regra allExtensions .
O provedor fileToFile
Esse provedor permite definir regras de agrupamento de arquivos com base em nomes de arquivos inteiros. Considere o seguinte exemplo:
- .bowerrc está aninhado em bower.json devido à regra fileToFile
Ordem das regras
A encomenda é importante em todas as partes do seu ficheiro de definições personalizadas. Você pode alterar a ordem na qual as regras são executadas movendo-as para cima ou para baixo dentro do nó dependentFileProvider . Por exemplo, se você tiver uma regra que tornafile.js pai de file.ts e outra regra que torna file.coffee o pai de file.ts, a ordem em que eles aparecem no arquivo ditará o comportamento de aninhamento quando todos os três arquivos estiverem presentes. Como file.ts só pode ter um pai, a regra que for executada primeiro prevalece.
A ordenação também é importante para as próprias seções de regras, não apenas para arquivos dentro de uma seção. Assim que um par de arquivos é correspondido com uma regra de aninhamento de arquivos, outras regras mais abaixo no arquivo são ignoradas e o próximo par de arquivos é processado.
Botão de aninhamento de arquivos
Você pode gerenciar todas as configurações, incluindo suas próprias configurações personalizadas, através do mesmo botão no Gerenciador de Soluções:
Criar configurações específicas do projeto
Você pode criar configurações específicas da solução e do projeto através do menu do botão direito do mouse (menu de contexto) de cada solução e projeto:
As configurações específicas da solução e do projeto são combinadas com as configurações ativas do Visual Studio. Por exemplo, você pode ter um ficheiro de configurações específicas do projeto em branco, mas o Gerenciador de Soluções continua a aninhar arquivos. O comportamento de aninhamento vem das configurações específicas da solução ou das configurações do Visual Studio. A precedência para mesclar configurações de aninhamento de arquivos é: Visual Studio > Solution > Project.
Você pode instruir o Visual Studio a usar apenas as configurações específicas da solução ou do projeto, definindo o nó raiz como verdadeiro. O Visual Studio para de mesclar arquivos nesse nível e não o combina com arquivos mais acima na hierarquia.
As configurações específicas da solução e do projeto podem ser verificadas no controle do código-fonte, e toda a equipe que trabalha na base de código pode compartilhá-las.
Desabilitar regras de aninhamento de arquivos para um projeto
Você pode desabilitar as regras de agrupamento de arquivos globais existentes para soluções ou projetos específicos usando a ação de remoção para um provedor em vez de adicionar. Por exemplo, se você adicionar o seguinte código de configurações a um projeto, todas as regras pathSegment que possam existir globalmente para esse projeto específico serão desabilitadas:
"dependentFileProviders": {
"remove": {
"pathSegment": {}
}
}