Extensão VSIX para Visual Studio 2022 / 2026 que desenha um grafo de dependências entre projetos da solução aberta (estilo .NET Aspire), com suporte inicial a C#, F# e VB.NET.
Ao clicar em um nó (círculo), o painel lateral mostra:
- Referências de projeto (
ProjectReference) - Pacotes NuGet
- Tipos / módulos públicos encontrados no código-fonte
-
Instale o
.vsixe abra uma solução com projetos.csproj,.fsprojou.vbproj. -
No Solution Explorer, clique com o botão direito na solução (nó raiz) e escolha Dotnet Graph.
Alternativa: menu View → Dotnet Graph.
-
Clique em Atualizar se o grafo ainda não carregou.
-
Use as visões Arquitetura, Call Graph, Namespaces e Types; exporte com PNG ou Mermaid na barra superior.
| Visão | Descrição |
|---|---|
| Arquitetura | Dependências entre projetos da solução |
| Detalhe do projeto | Painel lateral: referências, NuGet e tipos |
| Call Graph | Métodos e chamadas no projeto C# selecionado |
| Namespaces | Clusters por namespace |
| Types | Grafo de tipos do projeto |
Imagens no repositório: se
docs/screenshots/*.pngainda não existir após o clone, executetools\copy-screenshots.cmdna raiz (ou copie manualmente os PNGs paradocs\screenshots\).
Se aparecer NU1100 por causa do mapeamento global (ex.: feed Transmoreno), use o nuget.config na raiz deste repo: ele limpa fontes/mapeamentos herdados e permite restore de nuget.org apenas para este projeto. Pacotes ficam em .nuget/packages (local ao repo).
Depois de clonar ou alterar o config:
dotnet restore DotnetGraph.sln- Visual Studio 2022 ou 2026 com a carga de trabalho Desenvolvimento de extensão do Visual Studio.
- .NET SDK (para compilar
DotnetGraph.Core). - WebView2 Runtime (já presente na maioria das instalações do Windows / Edge).
Na raiz do repositório:
build.cmdOu manualmente:
dotnet restore DotnetGraph.sln
dotnet build DotnetGraph.sln -c ReleaseO pacote de instalação fica em:
src\DotnetGraph.Extension\bin\Release\net472\DotnetGraph.Extension.vsix
Se o .vsix não aparecer após build.cmd, confira que o projeto Extension tem VSSDKBuildToolsAutoSetup=true (já configurado) e que a carga Desenvolvimento de extensão do Visual Studio está instalada.
- Feche todas as instâncias do Visual Studio (exceto se for instalar na instância experimental via F5).
- Dê duplo clique no
.vsixou use Extensions → Manage Extensions → Install from file. - Abra uma solução com projetos
.csproj,.fsprojou.vbproj. - Siga Como usar a extensão (botão direito na solução → Dotnet Graph).
- Use Arquitetura (filtro Pasta no Solution Explorer), Call Graph, Namespaces, Types e Quem usa isto? (impact analysis no painel lateral, após selecionar um tipo C#).
- Escolha o idioma BR | EN | ES abaixo do título da janela (interface WPF + textos do grafo).
- Escolha o tema (Sistema / Claro / Escuro) na barra da janela.
- Clique em Atualizar após mudar projetos ou referências.
- Use PNG ou Mermaid na barra para exportar a visão atual (Arquitetura, Call Graph, Namespaces, Types ou Impact).
A análise MSBuild/Roslyn roda em background com overlay de loading para evitar travar o Visual Studio.
- AsyncPackage com carregamento em segundo plano — sem
AutoLoadna inicialização da IDE; o pacote só carrega ao abrir Dotnet Graph ou usar o comando. - Comando View → Dotnet Graph oculto enquanto não houver solução aberta (
UICONTEXT_EmptySolution). - Leitura de
settings.jsone análise do grafo (MSBuild/Roslyn) fora da UI thread; WebView2 inicializa após o primeiro frame da janela. - UI alinhada ao Fluent do Visual Studio (cores
EnvironmentColors, tema Sistema / Claro / Escuro, Alto Contraste no canvas quando o VS está em HC).
Na janela Dotnet Graph, use os botões BR, EN ou ES (alinhados à esquerda, abaixo do nome da solução).
| Botão | Idioma |
|---|---|
| BR | Português (Brasil) — padrão |
| EN | English |
| ES | Español |
A escolha atualiza rótulos da barra (Atualizar, Tema, seções do painel lateral, status do canvas, etc.) e é salva automaticamente para a próxima vez que abrir o Visual Studio.
Arquivo de preferências (Windows):
%LocalAppData%\DotnetGraph\settings.json
Campo relevante: uiLanguage (0 = BR, 1 = EN, 2 = ES). No mesmo arquivo ficam também tema, largura do painel lateral e posições salvas dos nós no grafo.
O manifesto usa InstallationTarget Version="[17.0,)", alinhado ao modelo de compatibilidade por API do Visual Studio 2026.
| Projeto | Função |
|---|---|
DotnetGraph.Core |
MSBuild + Roslyn: grafo da solução e composição dos projetos |
DotnetGraph.Extension |
VSIX, Tool Window WPF + WebView2, comando no menu View |
Abra DotnetGraph.sln no Visual Studio, defina DotnetGraph.Extension como projeto de inicialização e pressione F5. Isso abre a instância experimental (/rootsuffix Exp) com a extensão carregada.
- Análise de tipos C# e VB via Roslyn sem resolver todas as referências externas (foco em tipos declarados no projeto).
- F#: deteção de
typeemodulepor análise de sintaxe (sem FSharp.Compiler.Service nesta versão). - Projetos fora da solução referenciados por caminho absoluto aparecem como nós extras quando encontrados via
ProjectReference.
- Call Graph (métodos, acessibilidade, âncora do projeto) e Namespace Map
- Visão Arquitetura (projetos)
- Idioma BR | EN | ES (UI + grafo, persistido em
settings.json) - Impact Analysis / Who uses this? (símbolos na solução)
- Drill-down: grafo de tipos dentro do projeto selecionado
- Filtro por camada / pasta da solução
- Export PNG / Mermaid
- Integração com Live Graph ao salvar
.csproj
Este projeto está licenciado sob a MIT License.
Você pode usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e vender cópias do software, desde que o aviso de copyright e o texto da licença sejam incluídos em todas as cópias ou partes relevantes.
Copyright (c) 2026 DotnetGraph contributors