2016-04-12 4 views
1

Comment puis-je déployer un .NET exe mais toujours utiliser le fichier pdb dans un autre emplacement? Je suis inquiet de le garder avec l'exe dans le même endroit pourrait causer des utilisateurs finaux de supprimer accidentellement le pdb. Nous aimerions toutefois voir les détails de l'erreur (par exemple, le module, le numéro de ligne) lorsqu'une erreur est rencontrée par l'utilisateur. S'il y a un autre moyen d'obtenir cette information sans le .pdb, s'il vous plaît faites le moi savoir. Merci d'avance!Déployer .exe dans un emplacement distinct de .pdb

Répondre

0

This answer décrit un moyen d'obtenir cette information sans le pdb avec un peu de préparation de temps de construction.

Je suggère cependant que les utilisateurs ne obtiennent pas Supprimer droits au dossier où vous installez votre application (par exemple: Program Files?) Si oui, ou s'ils sont des administrateurs, rien ne les arrête de en supprimant pdb ou exe d'ailleurs.

+0

malheureusement ils ont accès en lecture/écriture et qui ne seront pas en mesure de changer. Je sais que les fichiers peuvent être récupérés à partir d'une copie sécurisée, mais nous aimerions ne pas avoir le .pdb visible pour les utilisateurs finaux si possible afin d'éviter toute confusion. – Kathryn

1

Vous pouvez le faire en définissant la variable d'environnement _NT_SYMBOL_PATH au démarrage de votre application. Lors de la recherche de symboles de débogage, le chemin de cette variable d'environnement (le cas échéant) sera inspecté pour les fichiers .pdb. Mettez vos symboles dans certains dossier (disons que est « % localappdata% \ MyApp \ Symbols »), puis faire:

var symbolsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "MyApp", "Symbols"); 
Environment.SetEnvironmentVariable("_NT_SYMBOL_PATH", symbolsPath); 
+0

cela a fonctionné. Merci beaucoup! – Kathryn