Qual é a versão do framework de um EXE ou DLL ?

Nestes tempos de migrações e vários Frameworks, é comum termos aplicações feitas em várias versões, desde o .NET Framework até as mais recentes versões do .NET Core.

Em um cenário ainda mais complicado, temos códigos produzidos em varias versões do mesmo framework, por exemplo: 3.0, 3.5,4.0, 4.5, etc. Mas e quando precisamos verificar se uma determinada DLL ou até mesmo um EXE estão na versão do framework que precisamos ? Qual o caminho ? Para alguns pode ser tentando adicionar na Solution e recebendo um erro de incompatibilidade, para outros usar algo como o utilitário ILDASM para inspecionar o assembly.

Para resolver um pouco deste cenário, eu criei um pequeno utilitário de linha de comandos, em .NET 4.7.2 que lista todos os arquivos EXE e DLL, informando a sua versão e também o framework para o qual foi compilado. Veja um exemplo:

Agora informando um diretório:

Muito simples!

O código fonte está no meu GitHub e o executável está disponibilizado como uma release no mesmo GitHub.

Até mais!