0

Il existe des informations contradictoires sur le Web concernant les meilleures pratiques en matière de gestion des fichiers .pdb, et je vous serais reconnaissant de les clarifier. Par exemple, la source this indique que "les fichiers PDB sont aussi importants que le code source", tandis que this indique que les fichiers .pdbs n'appartiennent pas au contrôle source.Les fichiers .pdb de obj/Debug doivent-ils être ajoutés au contrôle de source?

  1. Les fichiers .pdb générés par build au cours du développement normal (mode débogage) doivent-ils être validés au contrôle de la source?
  2. Les fichiers .pdb utilisés pour la publication/production doivent-ils être stockés dans le contrôle de source?

Je m'attendrais à ce que la réponse à la première question soit "non" et la réponse à la seconde soit "oui", mais il se peut que je manque quelque chose.

+2

Je pense que ce sera une question d'opinion. Je ne voudrais pas les mettre dans le contrôle de la source, car ce ne sont pas des sources. Je les stockerais avec les versions publiées, cependant. –

+1

Vous devrez utiliser la procédure nécessaire pour vous assurer que vous pouvez déboguer un minidump vous revenez du client. Un minidump est le seul moyen de diagnostiquer un crash difficile que vous ne pouvez pas repro. Cela nécessite d'avoir les exécutables appropriés et les PDB correspondants, vous aurez beaucoup de mal s'ils ne correspondent pas ou ont un mauvais horodatage. Il est préférable de configurer un serveur source, une copie sur un serveur de construction fiable peut fonctionner, le contrôle de la source n'est pas entièrement faux. –

Répondre

1

Les fichiers PDB ne doivent pas être placés dans le contrôle de source. Ils font partie des artefacts de construction et doivent être conservés avec la sortie de la construction (par opposition à la mise au rebut après la construction). Les versions historiques doivent être conservées et la version du déploiement actuellement publié doit être suivie. Si vous en avez besoin, vous pouvez extraire les PDB de la version archivée correspondante.

0

Voir this post sur SO. Vous n'avez pas besoin d'ajouter le fichier * .pdb au contrôle de source. Ces fichiers sont générés lorsque vous démarrez une nouvelle session de débogage.

1

En plus de réponse de Craig W.:

en plus du système SourceControl (comme svn/GIT) vous als devez également utiliser un système de construction pour archiver toute builds. Un bon système de construction est Jenkins, c'est silencieux un système de construction facile à comprendre avec toutes les fonctionnalités que je m'attends. Si vous distribuez votre logiciel, connectez-vous à jenkis et cliquez sur "construire maintenant". Jenkins vérifie ensuite la version actuelle de svn/git et construit votre logiciel (en utilisant un lot) et enregistre tous les fichiers y compris les fichiers de débogage/symbole. jenkins devrait augmenter le nombre de construction du binaire chaque fois et le nombre de construction devrait être placé dans le dossier binaire (dll et exe). Lors d'un crash, vous pouvez voir la version dans l'event-viewer et récupérer tous les fichiers de la version plantée, y compris la source.

Je suggère aussi d'écrire le numéro de build jenkins dans le binaire. Ainsi, vous pouvez toujours sélectionner le numéro de build et ensuite obtenir tous les fichiers de débogage et voir dans les journaux la version svn à partir de laquelle il a été construit (ainsi vous pouvez également vérifier le bon code source). Pour les fichiers de versionnement dll ou exe, vous pouvez utiliser (dans .net éditer le fichier de configuration avec un script à la place): http://www.codeproject.com/KB/install/VerPatch.aspx?msg=3207401 et l'intégrer dans le lot de construction.

Et vous trouverez les jenkins: https://jenkins-ci.org/