Você já precisou depurar ou criar um perfil de um executável (arquivo .exe) para o qual você não tem fonte ou não pode criar? Em seguida, o tipo de projeto menos conhecido do Visual Studio, o projeto EXE, é para você!
No Visual Studio, você pode abrir qualquer EXE como um 'projeto'. Basta ir em
Arquivo-> Abrir-> Projeto / Solução e navegue até o arquivo
.exe . Como você faria se fosse um arquivo
.sln . O Visual Studio abrirá esse EXE como um projeto. Esse recurso existe há muito tempo. Ele funciona em todas as versões atualmente suportadas do Visual Studio e os documentos estão em '
Depurar um aplicativo que não faz parte de uma solução do Visual Studio '.
Este artigo
em nosso blog .
Depuração
Assim como em um projeto normal, você pode começar a depurar com o F5, que iniciará o EXE e anexará o depurador. Se você quiser depurar a inicialização, inicie com 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 ilustrado abaixo:

Para a depuração, é necessário ter símbolos, arquivos PDB, para o EXE e qualquer DLL que você precise depurar. O Visual Studio seguirá o mesmo processo para tentar obter símbolos, como ocorre ao depurar um projeto normal. Como não é provável que os arquivos PDB tenham sido distribuídos junto com o EXE, convém localizá-los em uma queda de compilação ou, melhor ainda, em um servidor de símbolos. Mais informações e práticas recomendadas para símbolos podem ser encontradas neste
blog .
Para depurar efetivamente, você também precisará do código-fonte usado para criar o EXE, mesmo para apenas alguns arquivos importantes. Você precisará localizar esses arquivos e abri-los no Visual Studio. Se o código-fonte não for exatamente o mesmo que o código-fonte que foi criado, o EXE Visual Studio avisará você quando você tentar inserir um ponto de interrupção e o ponto de interrupção não será vinculado. Esse comportamento pode ser substituído na janela de
exibição Configurações do ponto de
interrupção . Na janela de visualização das configurações, clique no texto do link
Deve corresponder à fonte e marque a caixa para permitir uma fonte incompatível, conforme ilustrado abaixo. Obviamente, com uma fonte incompatível, você nunca sabe realmente o que vai acontecer, então use por sua conta e risco.

Se o EXE foi criado com o
SourceLink ativado, as informações sobre a fonte serão incluídas nos PDBs e o Visual Studio tentará fazer o download da fonte automaticamente. Esse é realmente um bom motivo para usar o SourceLink em seus projetos. Mesmo se você tiver um alistamento local, poderá não ter a mesma versão usada para construir o binário. O SourceLink é o caminho certo para garantir que a fonte correta esteja vinculada ao binário correto.
Se você não pode obter nenhum código-fonte, ainda tem algumas opções:
- Use uma ferramenta para descompilar os assemblies novamente em 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 por aí.
- Use a janela da ferramenta Desmontagem no Visual Studio.
- O documento Origem não encontrada possui um link para visualizar a desmontagem . Esteja avisado, se você estiver acostumado a depurar código C #, a exibição de desmontagem é uma ferramenta de último recurso.
Por fim, se você precisar passar argumentos para o EXE que está sendo depurado, poderá configurá-los juntamente com outras opções na página
Propriedades do
Projeto (
Clique com o
Botão Direito-> Propriedades no nó do projeto no Solution Explorer).

Criação de perfil
Você também pode usar as ferramentas de criação de perfil com o EXE iniciando-as no
Debug -> Performance Profiling . Na página de inicialização das ferramentas de criação de perfil, você pode selecionar quais ferramentas usar no EXE. Mais informações sobre criação de perfil podem ser encontradas neste documento (
https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019 ).

Conclusão
É isso. 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 está criando e que talvez nem tenha origem. Portanto, da próxima vez que você precisar depurar ou criar um perfil de um EXE, não esqueça que você pode abri-lo como uma solução no Visual Studio!