Quando eu crio e compilo um "Olá, mundo!" aplicação em c #, recebo três arquivos na pasta Debug além do exe principal (por exemplo, HelloWorld.exe)
- HelloWorld.vshost.exe
- HelloWorld.pdb
- HelloWorld.vshost.exe.manifest
A que finalidade esses arquivos servem?
c#
visual-studio
debugging
Milen
fonte
fonte
.exe - o executável 'normal'
.vshost.exe - uma versão especial do executável para ajudar na depuração; veja MSDN para detalhes
.pdb - o banco de dados do programa com símbolos de depuração
.vshost.exe.manifest - um tipo de arquivo de configuração que contém principalmente dependências de bibliotecas
fonte
O arquivo vshost.exe é o executável executado pelo Visual Studio (executável host do Visual Studio). Este é o executável vinculado ao Visual Studio e melhora a depuração.
Ao distribuir seu aplicativo para outras pessoas, você não usa os arquivos vshost.exe ou .pdb (banco de dados de depuração).
fonte
Além disso, você pode desativar a criação de arquivos vshost para a configuração de compilação do Release e habilitá-lo para Depuração .
Passos
Referência
Trecho do MSDN Como: Desativar o processo de hospedagem
As chamadas para determinadas APIs podem ser afetadas quando o processo de hospedagem está ativado. Nesses casos, é necessário desativar o processo de hospedagem para retornar os resultados corretos.
Para desativar o processo de hospedagem
Quando o processo de hospedagem é desativado, vários recursos de depuração ficam indisponíveis ou apresentam desempenho reduzido. Para obter mais informações, consulte Depuração e o processo de hospedagem .
fonte
Não tenho certeza, mas acredito que seja uma otimização de depuração. No entanto, geralmente desativo (consulte Propriedades de depuração do projeto) e não percebo desaceleração e não vejo limitações quando se trata de depuração.
fonte
Parece ser um processo de estrutura de longa execução para depuração (para diminuir o tempo de carregamento?). Descobri que, quando você inicia o aplicativo duas vezes no depurador, geralmente o mesmo processo vshost.exe será usado. Apenas descarrega todas as DLLs carregadas pelo usuário primeiro. Isso faz coisas estranhas se você estiver brincando com ganchos de API de processos gerenciados.
fonte