Actuellement, j'ai package de la release avec Nuget, pour le fonctionnaire s'appuie à nuget.org mais je package les versions de débogage avec Nuget pour la source de symbole pousse à symbolsource.org.
EDIT: (Jon Skeet, avec un certain penchant de Noda Temps de développement)
NuGet prend désormais en charge les poussant à la fois galerie NuGet et symbolsource.org (ou similaire serveurs), comme indiqué. Malheureusement, il y a deux exigences contradictoires ici:
- Quand il vient à l'aide d' une bibliothèque sans qu'il soit besoin pour le débogage, vous voulez vraiment un communiqué de construire. C'est ce que les versions release, après tout.
- Lors du débogage d'une bibliothèque à des fins de diagnostic, vous voulez vraiment d'une version de débogage avec toutes les optimisations désactivé. C'est ce que les versions de débogage sont, après tout.
Ce serait bien, mais NuGet n'est pas (pour autant que je puisse dire) permettent à la fois la release et debug pour être publié dans une manière utile, dans le même package.
Ainsi, les choix sont les suivants:
- Distribuer les versions de débogage pour tout le monde (comme le montre l'exemple de la doc) et de vivre avec n'importe quelle taille et les performances.
- Distribuer les versions release pour tout le monde et de vivre avec une légère altération de débogage de l'expérience.
- Aller pour une vraiment compliqué politique de distribution, fournissant potentiellement un communiqué de presse distinct et les paquets de débogage.
Les deux premiers vraiment se résument à l'effet des différences entre debug et release... mais il est intéressant de noter qu'il existe aussi une grande différence entre vouloir étape dans le code d'une bibliothèque parce que vous voulez vérifier certains comportements, et de vouloir pour déboguer le code d'une bibliothèque parce que vous croyez que vous avez trouvé un bug. Dans le second cas, c'est probablement mieux pour obtenir le code de la bibliothèque comme une solution Visual Studio et de débogage de cette façon, donc je ne vais pas payer trop d'attention à cette situation.
Ma tentation est de continuer avec la release, avec l'espoir que relativement peu de personnes auront besoin de déboguer, et ceux qui le font ne seront pas touchées beaucoup par les optimisations dans la version release. (Le compilateur JIT n'est plus de l'optimisation de toute façon.)
Donc, existe-il d'autres options que nous n'avions pas pris en compte? Existe-il d'autres considérations qui font pencher la balance? Est de pousser les packages NuGet à SymbolSource suffisamment de nouvelles que les "meilleures pratiques" n'a pas vraiment été mis en place?