LazowskiAnton · Extensions

PackageSmith

Versões de pacotes NuGet bem onde estão escritas: a versão mais recente após cada linha de pacote, todo o histórico ao passar o mouse, a atualização com Ctrl+. — e pacotes vulneráveis ou preteridos sinalizados antes que o build o faça.

Gratuito · Visual Studio 2022 e 2026 · 14 idiomas de interface · sem telemetria

Por que o PackageSmith

O mesmo arquivo de projeto sem e com o PackageSmith: as versões mais recentes após as linhas de pacote

O desatualizado num relance

Não é preciso abrir a janela do NuGet para saber o que está velho: a versão mais recente fica após cada pacote, verde para um patch, amarela para um minor, laranja para um major.

Atualizações seguras primeiro

Uma vulnerabilidade conhecida aparece em vermelho na própria linha, com a versão mais próxima que a corrige; um pacote preterido indica o seu substituto.

Só as suas fontes

As versões vêm das fontes de pacotes do seu NuGet.config — o nuget.org ou o feed da sua empresa. Só nomes e versões de pacotes são consultados; nada sobre você ou o seu projeto é enviado.

Gratuito, sem pegadinhas

Sem assinatura, sem versão “pro”, sem coleta de dados, sem mensagens na janela Saída ou na inicialização. A única coisa que vamos pedir — depois que você a tiver usado por um tempo — é uma avaliação no Marketplace. Funciona no Visual Studio 2022 e 2026, x64 e ARM64.

Recursos

Versões no fim da linha

Após cada linha PackageReference, PackageVersion e package: nada chamativo quando o pacote está atualizado; caso contrário, a versão mais recente na cor do salto. Versões não listadas nunca são oferecidas; pré-lançamentos só para pacotes que já usam um, a menos que uma configuração diga o contrário.

Um arquivo Directory.Packages.props com as versões mais recentes, um pacote vulnerável e um preterido
Após a linhaSignificado
✓ mais recenteO pacote está na sua versão mais recente.
→ 8.0.4 patchSó o terceiro número muda: correções.
→ 6.5.1 minorO segundo número muda: novos recursos, sem alterações incompatíveis previstas.
→ 5.0.2 majorO primeiro número muda: é aqui que ficam as alterações incompatíveis.
⚠ vulnerável · altaA versão em uso tem uma vulnerabilidade de segurança conhecida, com a sua gravidade.
preterido · use …Os autores preteriram o pacote e indicam aquele a usar no lugar.

Um cartão ao passar o mouse

Pare o ponteiro sobre uma versão no código ou sobre o texto após a linha: o cartão mostra a descrição, a versão mais recente de cada linha mais nova (10.0.13, 9.0.10, 8.0.21 para um pacote na 8.0.0) com a sua data, quantas outras versões mais novas existem, a vulnerabilidade com a atualização mais próxima sem ela e os botões Atualizar para …, Abrir no nuget.org e Site do projeto. Um clique em qualquer versão da lista a define.

O cartão de um pacote vulnerável com a versão mais recente de cada linha

Atualização com Ctrl+.

Cursor numa linha de pacote, Ctrl+.: o patch, o minor e o major mais recentes são oferecidos separadamente, então a atualização segura está sempre a uma tecla de distância. Atualizar todos os pacotes deste arquivo dentro da versão major leva cada pacote à sua versão mais recente do mesmo major — os majors continuam sendo uma decisão à parte. Uma versão vinda de uma propriedade ($(ContosoVersion)) é atualizada onde o arquivo a define. O arquivo é editado como numa alteração manual: Desfazer funciona, e o Visual Studio restaura os pacotes como de costume.

A lâmpada com as atualizações patch, minor e major de um pacote

Configurações

Ferramentas → Opções → SmithWorks → PackageSmith. Cada opção tem uma descrição.

OpçãoPadrão
Mostrar a versão mais recente após cada pacoteativado
Marcar pacotes atualizados com "✓ mais recente"ativado
Oferecer versões de pré-lançamento a todos os pacotesdesativado
Marcar pacotes não encontrados nas suas fontesdesativado
Sinalizar pacotes vulneráveis e preteridosativado
Cartão ao passar o mouseativado
Atualizar com Ctrl+.ativado
Verificar de novo após1 hora
Offlinedesativado
Pedir uma avaliação no Marketplaceativado

As configurações ficam em %LocalAppData%\PackageSmith, e as versões em cache ao lado delas.

Página de opções do PackageSmith
A página de opções.

Perguntas frequentes

O PackageSmith envia algum dado?

Ele pergunta às suas fontes de pacotes (do NuGet.config; o nuget.org se não houver um) as versões dos pacotes dos seus arquivos — as mesmas requisições que o Visual Studio faz ao restaurá-los. Nada mais é enviado: sem telemetria, sem nomes de projetos, nada sobre você. Com Offline ativado, nenhuma requisição é feita.

O feed da minha empresa exige login. Funciona?

Ainda não: feeds que exigem credenciais são ignorados, e os seus pacotes ficam sem anotação — nenhuma resposta errada é mostrada. Feeds v3 públicos (nuget.org, feeds abertos de empresas) funcionam.

Por que não aparece nada após alguns pacotes?

Nada é escrito quando a versão é um intervalo ou um curinga ([1.0,2.0), 13.*), quando uma propriedade é definida em outro arquivo ou quando nenhuma fonte respondeu. Ative Marcar pacotes não encontrados nas suas fontes para ver os pacotes que todas as fontes responderam não ter.

Funciona com o gerenciamento central de pacotes?

Sim: as versões são mostradas no Directory.Packages.props após cada PackageVersion, e o VersionOverride num projeto também é mostrado.

A atualização restaura os pacotes?

O PackageSmith só edita o arquivo. O Visual Studio restaura os pacotes após a alteração, como quando você edita a versão à mão.

Funciona junto com o LensSmith?

Sim. Os dois escrevem no fim das linhas, então dividem esse espaço: a versão vem primeiro, e um aviso do NuGet do LensSmith depois dela.

Onde relato um problema ou sugiro um recurso?

Abra um issue no repositório Feedback no GitHub — há formulários para bugs e ideias (troque os nomes privados). Você também pode usar a guia Q&A no Marketplace.

Histórico de alterações

1.0.1

1.0.0