Che cos'è un file PDB e come posso escluderlo dalla cartella di rilascio quando ricostruisco la mia soluzione?
Che cos'è un file PDB e come posso escluderlo dalla cartella di rilascio quando ricostruisco la mia soluzione?
Risposte:
Un file PDB contiene informazioni per il debugger con cui lavorare. Ci sono comunque meno informazioni in una build di Release che in una build di Debug. Ma se non vuoi che venga generato, vai alle proprietà Build del tuo progetto, seleziona la configurazione di rilascio, fai clic su "Avanzate ..." e sotto "Informazioni di debug" seleziona "Nessuno".
Inizialmente mi ero posto la domanda " Ho bisogno di un file PDB distribuito sulla macchina del mio cliente? ", E dopo aver letto questo post, ho deciso di escludere il file.
Tutto ha funzionato bene, fino ad oggi, quando stavo cercando di capire perché una finestra di messaggio contenente un Exception.StackTrace
mancava il file e le informazioni sul numero di riga, necessarie per risolvere l'eccezione. Ho riletto questo post e ho trovato il nugget chiave delle informazioni: che sebbene il PDB non sia necessario per l'esecuzione dell'app, è necessario che i numeri di file e di riga siano presenti nella StackTrace
stringa. Ho incluso il file PDB nella cartella eseguibile e ora va tutto bene.
accepted answer
qui non menziona.
PDB è un'abbreviazione per P rogram D ata B ase. Come suggerisce il nome, è un repository (archiviazione persistente come i database) per conservare le informazioni necessarie per eseguire il programma in modalità debug. Contiene molte importanti informazioni importanti richieste durante il debug del codice (in Visual Studio), ad esempio in quali punti sono stati inseriti i punti di interruzione in cui si prevede che il debugger si interrompa in Visual Studio.
Questo è il motivo per cui molte volte Visual Studio non riesce a raggiungere i punti di interruzione se si rimuovono i *.pdb
file dalle cartelle di debug. Il debugger di Visual Studio è anche in grado di dirti il numero di riga preciso del file di codice in cui si è verificata un'eccezione in una traccia dello stack con l'aiuto dei *.pdb
file. Quindi i file pdb in modo efficace sono davvero un vantaggio per gli sviluppatori durante il debug di un programma.
Generalmente non è consigliabile escludere la generazione di *.pdb
file. Dal punto di vista della versione di produzione, ciò che dovresti fare è creare i file pdb ma non spedirli al sito del cliente nel programma di installazione del prodotto. Conservare tutti i file PDB generati su un server di simboli da dove può essere utilizzato / referenziato in futuro, se necessario. Soprattutto per i casi in cui si esegue il debug di problemi come l'arresto anomalo del processo. Quando si avvia l'analisi dei file di dump di arresto anomalo e se i *.pdb
file originali creati durante il processo di compilazione non vengono conservati, Visual Studio non sarà in grado di individuare la riga esatta di codice che causa l'arresto anomalo .
Se desideri comunque disabilitare del *.pdb
tutto la generazione di file per qualsiasi versione, vai alle proprietà del progetto -> Scheda Crea -> Fai clic sul Advancedpulsante -> Scegli none
dalla casella a discesa "Informazioni debug" -> premi OKcome mostrato nell'istantanea di seguito .
Nota : questa impostazione dovrà essere eseguita separatamente per le configurazioni di build "Debug" e "Release".
Un file PDB contiene informazioni utilizzate dal debugger. Non è necessario per eseguire l'applicazione e non deve essere incluso nella versione rilasciata.
È possibile disabilitare la creazione di file pdb in Visual Studio. Se stai compilando dalla riga di comando o da uno script, ometti l' /Debug
opzione.
Il file di database di debug del programma (pdb) è un formato di file di Microsoft per l'archiviazione delle informazioni di debug.
Quando si crea un progetto utilizzando Visual Studio o il prompt dei comandi, il compilatore crea questi file di simboli.
Controlla Microsoft Docs