A versão C# ainda tem arquivo .pdb
-
24-09-2019 - |
Pergunta
Quero implantar a versão de lançamento do meu aplicativo feita em C#.
Quando eu construo usando o Release
Config, eu ainda posso ver que .pdb
Os arquivos são produzidos, o que significa que meu aplicativo ainda pode ser depurado. Isso também significa que algumas informações de depuração estão presentes em algum lugar do meu código, diminuindo um pouco a velocidade.
Se isso for verdade, como posso suprimir completamente alguma informação de depuração produzida nos binários? Você também sabe o motivo de ter lançamento .pdb
? o Release
Configuração tem o Optimize code
verificado, e apenas o TRACE
constante é definida, não DEBUG
.
Obrigado por ajudar.
Solução
Se você deseja desativar a geração de arquivos PDB, você precisa usar o "Advanced build settings"
diálogo disponível nas propriedades do projeto depois de clicar no "Advanced..."
botão "localizado na parte inferior do Build
aba.
Definir Output - Debug info:
para None
Para configuração de construção de liberação e nenhum arquivo PDB será gerado.
Outras dicas
O padrão também é gerar PDBs para compilações de liberação. Esse é um recurso e você não deve desativá -lo. Gerar PDBs significa que você pode obter mais informações ao depurar. O desempenho do código não é afetado de forma alguma pela presença de arquivos PDB.
Você não precisa enviar o .pdbs com sua implantação de liberação, mas eles são úteis para manter por perto - por exemplo, você pode depurar remotamente o código em execução em uma máquina diferente usando os PDBs em sua máquina para obter os números de linha de onde exceções ocorrer.
Sem o uso dos .PDBs, números de linha e nomes de arquivos não estão incluídos no Stacktraces, por isso torna muito mais difícil depurar.
Você controla a geração de PDB / símbolo nas propriedades do projeto em Build -> Avançado ... -> Informações de depuração:. As opções são:
- Nenhum (sem informações de símbolo)
- cheio (A .pdb será produzido e algumas informações de símbolo são incorporadas na montagem)
- PDB somente (um .pdb será produzido, mas a assembléia não será impactada)
Ver http://msdn.microsoft.com/en-us/library/8cw0bt21%28vs.80%29.aspx Para maiores informações.
EU fortemente Recomenda que você escolha a opção somente PDB, não A opção Nenhuma, pois ainda fornece algumas informações de símbolo sem afetar a montagem - você provavelmente descobrirá que essa é a configuração atual que você possui nas compilações de lançamento.