Você já teve que depurar ou criar um perfil de um arquivo executável (arquivo .exe) para o qual você não possui código fonte ou não pode construí-lo? Em seguida, o tipo menos conhecido de projeto do Visual Studio, o projeto EXE, é para você!
No Visual Studio, você pode abrir qualquer arquivo EXE como um "projeto". Basta ir em
Arquivo -> Abrir -> Projeto / Solução e ir para o
arquivo .exe . Como se fosse um arquivo
.sln . Visual Studio abrirá esse arquivo EXE como um projeto. Esse recurso existe há muito tempo. Ele funciona em todas as versões atualmente suportadas do Visual Studio e sua documentação está na página
Depuração do
aplicativo, que não faz parte da solução do Visual Studio .
Depuração
Como em um projeto normal, você pode iniciar a depuração com F5, que iniciará o EXE e habilitará o depurador. Se você deseja depurar o lançamento, pode começar a usar o F11, que iniciará o EXE e será interrompido na primeira linha do código do usuário. Ambas as opções estão disponíveis no menu de contexto do projeto EXE na janela
Solution Explorer , conforme mostrado abaixo:

Para depuração, você precisará de símbolos, arquivos PDB, para EXE e quaisquer DLLs que precisem ser depurados. O Visual Studio seguirá o mesmo processo e tentará obter os caracteres da mesma maneira que ao depurar um projeto regular. Como é improvável que os arquivos PDB tenham sido distribuídos com o arquivo .exe, você pode encontrá-los no assembly ou, melhor ainda, no servidor de símbolos. Mais informações e recomendações sobre o uso de símbolos podem ser encontradas neste
blog .
Para uma depuração eficaz, você também precisará do código-fonte usado para criar o EXE ou mesmo de vários arquivos que lhe interessam. Você precisa encontrar esses arquivos e abri-los no Visual Studio. Se o código-fonte não corresponder ao código-fonte que foi compilado, o Visual Studio EXE avisará quando você tentar inserir um ponto de interrupção e o ponto de interrupção não será vinculado. Esse comportamento pode ser alterado na
janela de visualização de configurações . Na visualização de parâmetro, clique no texto do link
Deve corresponder à fonte e marque a caixa de seleção para resolver a fonte inadequada, conforme mostrado abaixo. Obviamente, com uma fonte inadequada, você nunca sabe o que acontecerá; portanto, use isso apenas por seu próprio risco.

Se o EXE foi compilado com o
SourceLink , as informações da fonte serão incluídas no PDB e o Visual Studio tentará carregar a fonte automaticamente. Esse é realmente um bom motivo para usar o SourceLink em seus projetos. Mesmo se você tiver um conjunto local, talvez não tenha a versão usada para construir o binário. O SourceLink é a sua maneira confiável de garantir que a fonte correta esteja vinculada ao binário correto.
Se você não conseguir obter o código-fonte, ainda terá várias opções:
- Use a ferramenta para descompilar os assemblies de volta ao C #, que você pode recompilar em um novo assembly para corrigir o antigo.
- O ILSpy é uma ótima opção para isso, mas existem muitas outras boas ferramentas gratuitas e pagas.
- Use a janela da ferramenta Desmontagem no Visual Studio.
- O documento Origem não encontrada contém um link para visualizar a desmontagem . Lembre-se de que, se você está acostumado a depurar código C #, a desmontagem de exibição é o último recurso.
Por fim, se você precisar passar argumentos para um arquivo EXE depurado, poderá configurá-los juntamente com outros parâmetros na página
Propriedades do
Projeto (
clique com o botão direito do mouse -> Propriedades no nó do projeto no
Gerenciador de Soluções).

Criação de perfil
Você também pode usar ferramentas de criação de perfil com um arquivo .exe executando-as em
Debugging -> Performance Profiling . Na página de inicialização das ferramentas de criação de perfil, você pode escolher quais ferramentas usar no EXE. Informações adicionais sobre criação de perfil podem ser encontradas nesses documentos (
https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019 ).

Conclusão
Isso é tudo. Uma breve visão geral de como você pode usar o Visual Studio para depurar e criar um perfil de aplicativos que você não cria e que talvez nem tenham código-fonte. Na próxima vez que você precisar depurar ou criar um perfil em um arquivo .exe, abra-o como uma solução no Visual Studio!